Monday, January 25, 2016

Replica App: To-Do List, and More News On My Phone

I've recently had a few good ideas about the direction my Replica App (in which I'm trying to duplicate an app I currently use at work) should go, and some things to add. Some or all of them will include more complicated things that I don't know how to do yet, so I thought it might be a good idea to detail it here and see how it goes.

  1. Actual Functionality:  Let's see... first I thought it would be cool if the app provided some kind of useful function, even though it might not be anything anybody would actually want to use in everyday life haha, being that it essentially is an inventory-keeping application. Up to this point though, I've really only been duplicating what it looks like and the various screens you will get to, but it would be nice to add functionality to the screens.
    When you think about it though, it is more complicated than it appears on the surface; I think it will require a database of sorts to keep track of all the items and locations you add to it. At work, if I haven't explained it already, we use the app on an iPod to scan items into locations on the shelves in the backstock rooms. You can scan the barcode of an item, and it will pull up any backstock location it might happen to be stocked at, as well as typical information like a short description of what the item is and what the cost and retail price is. It also includes a Division and Item Number, and usually a SKU. The Division is a one or two digit number which goes to certain departments in the store (it is a department store, so for example "Men's" or "Small Appliances"). The Item Number is five digits, and unique to each individual item within a division. The SKU usually refers to a size if it is clothing, and is three digits though common numbers are "003" and "005" and so on.
    Well, in my version of course there will be no scanner (you can manually enter the Division/Item Numbers or UPC barcodes on the ones at work, but obviously that's slower). It is what I will do on my home version, but that's where the database will have to come in. There will have to be some file that contains all of the UPCs of any items I add as well as their corresponding information - a made up Division/Item Number/SKU, as well as price and description if I want to go that far. Then, I will need to have locations (I'm thinking of a bedroom, or entire house - closet shelves, dresser drawers, pantry shelves, etc etc). After seeing the code for my brother's Blood Touch game, I'm wondering if that will best or easiest be done using a JSON file, but I really have no idea right now. What it will mean is that my app will have to save information I suppose (the apps at work connect to a network which stores all the info) but I think it will be simple enough to create the database within the app.
  2. System Bar:  As the real app is on Apple iPods, it has the Apple system bar at the top of the screen. So far I have been creating my app with the system bar (and the activity bar) completely hidden, but since it is there for real I want to add it eventually. I tried a little bit one day to figure out how but didn't get very far, and then I had an idea which I thought would be funny - maybe I could make static images of an iPod-style system bar, using maybe five or so varying images which the differences being the battery life and Wi-Fi signal strength, with the joke being the further you click into the app the worse the battery and Wi-Fi would be (or seem) because they are pretty notorious at work for those things. I will probably honestly go with whichever is easier however, because by the time it's actually incorporated I will no longer be at that job so I'd be the only one to get any humor out of it haha.
  3. Greyed-Out Sections:  At the top of certain screens, any of them that have a large button to use the scanner, the background behind the button is grey as opposed to the standard white everywhere else in the app. I'm sure it's easy, but I still haven't exactly figured out a way to make that happen. I think I will have to create a "container" of some kind and make its background grey, and then place the button on top.
  4. Borders:  It seems like there would be a simple option to toggle borders on or off around things like buttons and EditText fields and the like, or a simple way to design/create them. Instead I think I will have to learn how to use a work-around to produce them, which I still need to do.
  5. Appearing Buttons:  The next thing I might look into (despite being fifth on this list haha) is how to make a button show up after a certain action. There is a certain screen which requires you to input (or scan) something before you can move on, so right now my screen lacks the "OK" button to move on because I want it to be realistic and only appear when it should.
  6. Return to Top:  As described in the previous post, there are "return to top" buttons on the main activity screen which I have added, but do not have functionality yet.


Of course, I will chronicle any major steps taken in regard to any of these in the future.

Lastly, you may recall the issues I had with my Samsung Galaxy Alpha that I mentioned in an earlier post. It seemed as though doing the standard troubleshooting measures of factory resetting combined with booting in safe mode cured it, as I eventually disabled safe mode and one by one restored my old apps that were wiped out by the reset. Alas, the issues returned, and I swear it happened any time Facebook would update. I still think Facebook is somehow the culprit as it always seemed to be the app I was using or the app that was or had recently updated when the issues returned (It was okay for probably a month or more, and then once every month or two since then it has messed up again, to which I'd boot in safe mode which would seemingly make it go away). It's such a strange thing because all of that info seems to indicate that a third party app is at fault, but the issue itself (screen messing up, things turning green, etc) seems more like a hardware malfunction. Maybe it was simply overheating due to a particular app, and would eventually ruin it for good... except the solution I've come to for this, sadly, is to use the warranty on the phone to get a replacement. I will update again when I know what kind of phone that will be. It does suck though, because I've really liked everything else about this phone :/.

Replica App: An Interesting Small Problem

I just ran into an interesting problem, one which is very small, but I think it's a perfect example to use to make a post about, so I thought I'd write it out.

In my Replica App project, where I'm trying to replicate an app I use at work because it looks super simple, it has a "return to top" button on it's main menu, which is my main activity and a ScrollView. That is the problem: how do I make an onClick event to simply return the ScrollView to the top of the page?

What I'm thinking is, there's probably a way to have it just refresh the current activity, or reload it so that it will reset it to default - the top.

-----

I started this post on 10/26/15, and in the two weeks plus since then, I've put this issue on the back burner and have been adding and working on other areas of the app.  I did run the problem by my brother though, who mentioned he might have had to do something similar in our simple text-based game, Blood Touch.  He was going to help me find it and figure out how to apply it to my app, but he's been really busy at his regular job so we haven't had time.

-----

It is now months later, and the interesting small question remains unanswered. We both had been very busy with work, and other distractions kept us from finding the solution, but the truth is it just isn't high priority, so when I have worked on it, I've been more obsessed with making progress and getting content into it than working out all the little kinks. It sounds like that might be a smart way to approach it anyway, according to my brother, because he says it is easy (for him at least) to get to caught up on little details to the point it impedes his progress. Although it is a small feature, I will want it to function eventually so I will come back to it.