Showing posts with label Java. Show all posts
Showing posts with label Java. Show all posts

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.

Sunday, August 9, 2015

Text-based Games and the Future

I just wanted to do a quick update since it's been a little while, been a bit sidetracked lately with a book editing project I'm doing as well as helping my brother to try and push out a text-based game for Android on Google Play called Blood Touch (look for it soon!).  While that is in Java, he is handling the coding and I am simply helping with content, coming up with "monsters" and stats and numbers for him to add to a JSON file.  I've done very little video tutorials as of late, but have recently started to try and pick that back up and mess with Android Studio again.  My brother also plans to send me the code for this simple game so that I can mess with it and try to understand the various pieces and activities and concepts, and figure out what is doing what.

By the way, this "simple" text-based game is way more complicated than either of us thought it was going to be. There is a lot to it and a lot he had to research and figure out, but then again that is what he says the essence of programming is all about basically.  All of this will be a great stepping stone going forward, which was a major point in making this game. Don't get me wrong though, he also loved these games growing up and enjoys playing them (and I have really enjoyed testing it and helping him with tweaks and additions and testing it again and again), so there is the whole nostalgia aspect as well, and a genuine like for it.  We are both perfectionists, so it's hard for us NOT to put 100% into something we do, sometimes to a fault.  This game may not impress anybody and may not garner much attention, but it certainly is not half-assed nor seen as JUST a learning experience.

Anyway, the latest news in regards to my learning Java: my brother feels as though the Android Studio courses and videos I've been watching may not be as beneficial to me at this point, because they are focused so much on Android features and things like XML layout files, or Gradle build files, or Android widgets and the such.  He thinks I should practice with more straight Java code, hence why he wants to send me this Blood Touch project to play around with. I also have an idea to try to mimic a simple looking app that I have to use at my "regular" job all the time.  It's very basic white screens with black text, with buttons to access the various parts of the app. At work, it runs on iPods with a scanner attachment that we use, with it's main purpose to keep track of inventory. Obviously I won't have a scanner to actually activate, but I feel like I could at least make all of the different screens and replicate everything else about it, just to see if I can. So that's kinda where I am right now, a little disappointed that I've been away from the tutorials for a few weeks after I was making such good progress for a chunk of time before that... but I am very excited to be this close to having contributed to something that will soon be on Google Play, I will probably come back to this post and add a link to it, so again look for that in the future!

Thursday, June 25, 2015

Steady As She Goes

Another hurdle I had previously, was how you take an idea and make it a thing.  Bring it to life. Where do you even start, basically.  How do you know what all you'll need to make it happen?

After more videos though, I'm starting to get the picture.  I'm beginning to understand the idea of a "life cycle" for an "activity", and how to use .xml files to create layouts for basic screens.  I get the idea that every screen is an activity, and that you can pause it, stop it, destroy it and so on.  I'm still nowhere near taking an idea, especially for a game, and turning that into anything on my own, but I feel like I can at least make a basic screen that says something, haha.  It is a start.

I also thought I'd mention that we made the switch from using the Eclipse IDE to Android Studio, in light of learning that Google would no longer be supporting the Android Developer Tools (ADT) plugin for Eclipse.  So far, we're both liking Android Studio, I don't think either of us (my brother or I) have any major issues or dislikes with it.  Honestly to me it looks and feels pretty similar to Eclipse, and I'm learning it little by little as I go just as I was with Eclipse.

Other than that, it's been pretty steady as she goes lately. I've been working on a few various tutorial apps with following these videos, from Hello World ones to playing with different layouts, and a basic registration form, all while testing on my phone and an emulator.  I guess my next challenge would be simply figuring out how to make things like buttons work, and opening up new activities from a Main Activity.

Saturday, June 6, 2015

Learning Java: The First Post

For this first post, I'm going to try to backtrack a bit and mention a couple of the first things that crossed my path in this journey since I had considered making this blog for awhile before actually doing so.

So my main regimen to learn Java, has been to watch tutorial videos online and with the help of my brother who is a programmer, though he is just now learning Java as well.  For the videos, I mostly use a site called lynda.com, which has really great tutorials.  My brother has found some good videos on YouTube as well, but for now, for learning the main core idea and getting started, that's mostly where I go.  At first of course, it's pretty simple, and guides you through installing the JDK and JRE, as well as an IDE, which at first I was using Eclipse, as the videos were too.  As is the norm, the first program it has you create is a "Hello, world!" program.  No problems there.

The first real problem I recall having, is just that I had a disconnect trying to figure out how typing in code and creating classes and objects, converted magically into images.  The next project the videos worked on, used the example of creating an olive press to crush olives and produce olive oil.  So I could see the code and the logic and all that, but how, when and where does it go from simply having it output text that says "You crushed 2 olives and got 4 units of olive oil" to an image of a press and oil?  I think I understand now that you would use different means to accomplish that, what we plan to do for example is use libGDX.  I have also previously dabbled with programs like Blender and Unity, but doing Java from scratch is kinda a different animal.  So I guess I see you would import images and the like, and the code will just dictate how they act.  Still, "rendering" and manipulating 3D images and objects is still a bit over my head, but that's for another day.