Category Archives: Android

Apple Developer Program: Room For Improvement

I’ve wanted to learn to make iOS Apps for some time, so I finally bit the bullet and bought a Mac Mini, downloaded Xcode, and started programming. I’m getting to the point where I want to deploy and test my app on my own iPhone (rather than run in a simulator), but in order to do that, you have to join the Apple Developer Program so you can appropriately sign and deploy your App to real iPhone and iPad hardware. And boy, what a pain joining this program is!

I should qualify this statement…I’ve joined the Apple Developer Program before as an individual. Everything went through ok then, but i never got around to actually building an App. This time, however, I decided to F.O.C.U.S – Follow One Course Until Success – and to actually build an App this time. And this time, I decided to join the Apple Developer Program as a Corporate Entity; you know, with designs of becoming a Billion Dollar Unicorn. Apple gets funny with Corporate Developer Registrations, seemingly. They require that you have a DUNS Number. Ok, whatever. I’m used to bureaucracy. I went and got me a DUNS Number. But for some reason, it took weeks (in reality, months) to associate a DUNS number with my Company in Apple land. Dun and Bradstreet told me to wait a few weeks, after updating some key email and phone number information, before trying to enroll in the Apple Developer Program again. So I waited…and waited…and I’m still waiting…

After waiting entirely too long, I tried to enroll again. This time, Apple complained that my credit card was being rejected. Really? Ok, so I tried another credit card. Rejected again. Really???? I logged in to both credit card accounts. Sure enough, successful charges from Apple on both for $99, but for some reason, Apple would still not let me enroll in their program:

What would Steve Jobs do?

At this point, I am quite flustrated. Of course I will press on, because I am committed to this project and to learning iOS development. But I never had this much problem getting an Android App out into the Google Play Store…I expect much more of Apple.  This process should have been absolutely thoughtless and painless.  But it’s a good reminder of how difficult and tenuous it is to build a company on top of another company’s technology.

EDIT (2/16/2017): I called Apple today and was unable to resolve the technical problem behind registering online, so I registered for the Developer Program over the phone this afternoon.  Part of my urgency in getting this registration done was because I wanted a shot at attending WWDC2017 this year.  Registration for WWDC2017 is by random selection to members of the Developer Program in good standing as of 2/16/2017 at 0530am PST.  I registered online the evening of 2/15/2017, but it failed due to technical problems with the Apple website (my credit cards are fine).  So I’m hoping I can still figure out a way to get in good standing for possible selection to WWDC2017.

Building An Android App

The App Idea

I have not built an Android App in years, so one of my New Year’s Resolutions is to build at least one Android App and get it in the Google Play Market by the end of the year.  To that end, I’ve started working on an application (which will be mobile and web) that helps rowing teams (a niche I am somewhat familiar with) manage themselves better.  Rowing is a team sport and individuals on the team are highly reliant on one another.  This application will help rowing coaches and rowers alike communicate better and practice more efficiently.

The application name is ‘Herding Rowing Cats‘.  The software is distributed under the terms of the GNU Public License v3 and is being developed in the open at Github.  It’s a learning experience for me and the journey’s the thing.  Hopefully, it will all turn into something beautiful and usable, improve people’s lives, and make rowers and coaches happy.

The Development Environment

My only computer at the moment is a $250 Acer Chrome Book that I installed chrUbuntu ( 64 bit v. 14.04) on.  This laptop has 4GB of RAM, a 270GB hard disk, and an Intel® Celeron(R) CPU 847 @ 1.10GHz × 2.  It’s reasonably fast for my purposes and for the price.  I told myself I would upgrade to a more capable machine once I figured out a way to start making money on the side with my tech skillz.

I use Android Studio v1.0.2 to do the main Android Application development.  I’ve only been using this IDE for about a month now, but so far I really like it.  It integrates pretty easily with my github account and makes code commits fairly straight forward (albeit with lots of dialog pop-ups, which get annoying).  All in all,  though, it’s a great IDE especially considering the price.

I am using a Virgin Atlantic Kyocera Event Android Phone I got free at Wally World (Walmart) during a Black Friday Sale a couple of years ago.  Using a real device for local testing, I find, is faster than using an emulator.  I don’t think this will be sufficient for real-world testing, but I’ll cross that bridge when I get there…Android Application testing scares me, actually, given the large assortment of screen sizes, device types, carriers, etc…

Kyocera Event Android Phone

So my total development cost so far, including laptop, phone, hosting and domain name purchase are all probably under $500 at this point (hosting and domain(s) for a year are around ~$160).

Server Side Development

As mentioned in a previous post, I am hosting my server-side web application on Go Daddy and dealing with the associated constraints by prototyping the web application using HTML/JavaScript/CSS for the front-end, Perl CGI as the middle-tier connectivity, and MySQL as the back-end database.  I am doing the server-side development directly on the server using vim.  I usually secure copy (scp) files down to my local computer so I can check them into git before I go to bed.  I’d prefer to use git directly from my shared hosted Linux server, but I think Go Daddy blocks github access from their servers (anyone know something different)?

Software Development Life Cycle (SDLC)

I installed a white board in the bedroom in my apartment.  I actually drew swim lanes on the board to indicate the backlog, in-progress and complete swim lanes so I could track my user stories.  I have written a bunch of user stories on stickies, estimated the stories (with Story Points, not Hours), and stuck them in the backlog swim lane.  I am doing two week sprints, and gave my girlfriend a demo of the Android App running on the phone at the end of the first sprint.  It was fun and she was impressed.  I got a kiss just before I started the second Sprint.  Can’t wait to complete all of the story development now, but I digress…

I’m tracking the number of hours I spend on this project just to get a rough idea for how to estimate similar projects moving forward.  I will share the hours on this blog as I progress.