Wednesday, September 16, 2015

The Gradle Issue and Replicating a Real-World App

Well, we've had an interesting month so far.  I might move back to Texas in a few months, perhaps sooner, or perhaps not at all, but whichever way all of that goes I still plan to try to learn this stuff. So here's what's been going on:

Blood Touch, sadly, still has not been released.  Life tends to get in the way of the more extracurricular things sometimes, such as making games on the side of your day job.  This is more-so about my brother who as I mentioned is handling all of the actual programming for the game.  It's come so far and is pretty close, but still has a few fairly fundamental things we'd like to implement before release, but his job keeps him busy and was especially hectic during August, and now he's been away from it for a little while so there's always the matter of getting back into the zone with things as well. No big deal though, it will get done and released, and I remain very excited about it; my hopes really aren't too high on it actually making us money or anything, but it will be the first game put out into the world that I contributed to, and I am very curious to see what it does.  Any amount of downloads or especially feedback, I will find extremely interesting.  So again, I will update when that releases!

Speaking of Blood Touch, I also mentioned last time that my brother was going to send me the code for it, so that I could mess with it and figure out what is doing what, and tweak it around and maybe slowly turn it into my own thing, just as practice.  Well, we did do that maybe a week or two ago, and we actually ran into a problem straight away, which is one of my (and his) current hurdles, which has to do with Gradle.  We think the problem lies in that I have been updating my version of Android Studio, and he has not.  He copied the code to a hard drive, and I copied it onto my laptop.  Somehow though, that has rendered it useless as far as the Gradle build is concerned.  It's been several days now since we tried to fix the problem, but even after four or so hours of trial and error, we still have the error.  So I do have the project on my computer, and I can look at the code and try to put two and two together, but I can't actually run the app to be able to change things around and see what happens, or anything like that.  I think our plan there is to go ahead and finish Blood Touch first, release it, copy the code, then my brother will update to the latest version of everything and see if that automatically updates Gradle too in some way that keeps everything in line and working together properly.  Then if after the updates, his still works fine, we'll re-copy the code and put that on my computer and hope it solves it.  Otherwise we'll just have to research some more to see what's going on.

The other project I mentioned working on last time, revolved around an app I have to use at work frequently.  I have started that, and have the main couple of screens/activities laid out.  I have the launcher icon looking the way I want (replicating the real one), and the initial boot screen from the real app that requires a passcode be entered.  It has the basic idea in place, but still needs work to really be replicating - for example, the real app obviously requires a specific passcode and will tell you an incorrect one was entered if you try to tap the "OK" button to enter the app's main screen.  So far on mine, there is not even a border surrounding the passcode's text field, or "editText view" to be more Android specific, and you could click "OK" to continue to the main activity whether you enter a number or not.  I do have the passcode field limited to three numeric characters as it really is, but I still have more of those kind of touches to figure out how to add that it needs to be more authentic.
The main activity on the real app basically just has some text citing the version number after "Main Menu", and then a bunch of small icons arranged three across and four down in a grid before the Main Menu title bar repeats itself, and another group of 12 icons appear below that, which repeats a third time.  The third group may or may not have 12 more icons depending on which version is running, but still, there are roughly 36 icons on the main menu screen which act as buttons to open various portions of the app, most of which use the scanner I mentioned last time to scan a product and bring up information or move inventory around.  At work, I use maybe half a dozen of these very regularly, and most I have never touched.  So my plan is to replicate the ones that I use and know, and just simply have the icons for all the others on the main menu screen, but no actual button to them.  As I'm quickly learning though, this still requires a lot of work and activities.  The reason I'm going into this much detail is so you have an idea what it is exactly I am trying to do, but the point of this whole paragraph is to touch on what I brought up last post, about the fact that I was dealing with more layout type stuff as opposed to actual Java programming code.  The thing is, I am making this replica app in Android Studio, and again I find myself (so far at least) mostly dealing with the layout, and look and feel of the whole thing (font color and size, image sizes, etc) and only have a couple of buttons so far that connect activities - I have the launcher activity with the passcode which opens up the main menu activity, and then right now I just have my first little icon on the main menu which does act as a button to open up one part of the app, and a screen for that.  As far as I can tell though, this whole project/idea will really still just be about laying it out to look right, and a couple buttons to connect activities, so it still seems I'm not delving into straight Java code with this project either.  I still think it's okay and worth doing, I want to see how close I can resemble this app because now that I'm learning this stuff, I find myself at work thinking this app looks so basic and simple.  And the company I work for is fairly big, so I know the developers got paid very well to make this app for the company to use - yet here I am thinking I could handle something like that myself, just starting out haha.  There is much more to it than I'm giving credit, like network connectivity to connect it to a server and keep all this information in a database, and things like that that I wouldn't have the first clue about.  This really is just an experiment for practice and to see how close I can duplicate what I see in this example of a real-world app, so I will keep at it and continue to update my progress.