Making An App Part 1

Hello

My name is Albert Kim and today I will be blogging about Swish. Swish is an up and coming mobile and wearable application from the start up Onyx Motion. Swish is all about digital coaching for an exceptional person. This person could be anyone, it could be you, me or it could be Ben Gordon former 6th man of the year in the National Basketball Association. Currently, Swish is focused on basketball related coaching. We do plan on expanding to other sports but let’s get basketball working first.

As you may recall, my name is Albert Kim and I am the lead developer at this start up. I previously worked at a government job doing WordPress development and the biggest thing I learned from that experience is a 9–5 corporate work life style is not for me. I have been with this start up for about 4 weeks now and it is pretty much everything I can ask for in a job (other than maybe a fat salary). I have freedom in how I go about my day, I have freedom to implement the tasks required and I get to work from home! How jawesome is that?

The reason I am writing this blog post is to share my journey as I develop this app. I was always interested in seeing progression articles about indie video game development when I was interested in indie video game development so I thought why not start a blog about the progress of the app I’m working on? I hope everyone can enjoy and maybe even learn from this journey.

The Computer Application — Starting Out

As you can see, the time was 3:13pm EST at the time of this screen capture. This is what the application looked like then. A simple log in screen and side navigation. It is called Swish2 because Swish was already taken. I decided to rebuild the app because the previous Swish was not functional, and everything needed to be rebuilt.

How did I get to this point? It was pretty simple, I followed this tutorial and pretty much built the app from that. I can’t recommend slidenerd enough, he is the reason I know any Android development. I mean, I probably could have learned from other resources but this guy really helped me out when I was in the complete beginner stages.

Setting Up The Navigation

The app at the current screen shot wasn’t very technically advanced at all, but in terms of Android code I believe it is quite modern. I am using the appcompat v7 23.1.1 and Android support 23.1.1 for the navigation which was basically the entire app. The slidenerd tutorial was using 22.1.1 I believe but it’s pretty much the same thing. When I tried following the slidenerd tutorial, my NavigationView xml code wasn’t accepted! I probably spent 30 minutes Googling the problem but what I should have done was watch the tutorial video properly instead of skipping ahead. I would have then realized that I didn’t add the design support 23.1.1 gradle line which is the thing that includes the NavigationView, arg! It is a typical modern Android app set up. I am trying to follow Google’s material design convention as much as possible, nothing mind blowingly profound at this point.

I would highly recommend being constrained by Google’s material design. If you allow yourself to freestyle with no guidelines, you might become paralyzed by decisions. By following Google’s design specifications, a lot of decisions are made for you, your app becomes familiar to users and it just makes developing a lot easier!

4 Days Later

Well here is where it’s at now at the time of this writing! 3:12pm EST. Sweet ViewPager ZoomOutPagerTransformer transitions! Implementing this transition and ViewPager tabs was quite simple. I just followed the Android developer guide as well as the Slidenerd tutorial to implement what I have shown. I know this app doesn’t look sensational right now but it’s almost functional!

What this page is supposed to represent is the user’s personalized data about their shooting statistics. The graph will be updated to show their makes and misses instead of an example graph about flowers. They can see daily, weekly, or monthly updates on their stats.

2 American Pennies

Now here is where I am open to comments about what to use for my graphs. I am currently using a WebView inside my ViewPager fragments to display a d3.js example graph. The biggest downside to this is that it is slower than a regular Android library. I chose to use WebView and d3.js because it seems as if d3.js is the best option for data visualization. I’ve seen good things about Android graph libraries like MPAndroidCharts and Hello Charts. Does anyone have any input about what to use? Decision paralysis! Also here’s a great introduction to d3.js.

Well that’s it for now. My next task is to get some kind of graph functional and working. I think I’m going to continue with d3.js for now, I hope this decision doesn’t come back to bite me in the ass.