App Development - Lessons Learned
I was recently asked by a client if I could create an app for them, and of course I said yes, without having any knowledge as to HOW to even start with creating an app. In this blog I will go through some of my experience, my headaches, my strong dislike for some platforms, and just my overall take on the entire process.
When it comes to app development, there are numerous routes that you can go through, whether it be the abundance of app development services, or using software to create and build the app yourself. In this process I personally signed up for, and tested, several of the app development services that are available today. Although they had their pros and cons, they all seemed lacking to me in one way or another. Whether it be lack of a template that I liked, limited customization, inability of nested menus, or features that one had that others didn't, or even cost of the services where the app I would be building would be free to the company associates. In the end I determined that the services were too limited, and they were pricy for this particular project that I opened mouth and inserted foot on.
So, with online services out of the picture, that meant coding something myself. Again, software "tools" are in abundance for this. As an example, want to build for Android? You have Android Studio. Want to build for Apple? You've got Apple XCode. But, I didn't particularly want to have two entirely different apps that I'm building: one for Android, and another for Apple, and both of the pieces of software mentioned above are platform specific. In the end, I settled on Microsoft Visual Studio, which Microsoft did a great job on. Visual Studio provides me the ability to code once, but build for many, inserting the necessary platform specific code when needed. With different device emulators, for Windows, Android, and iOS, it ended up making life so much easier.
So as the hours, days, and weeks went by, the app is looking great. I create screenshots, and create a "virtual tour" video of the app from my computer, and as it was put to me, when the owners of the company saw it they "almost wet themselves" they were so excited. At this point with everything working, their loving it, and all changes in place, I know that it's time to build the app for submission to the various app stores. Thankfully, Visual Studio will actually build and package the apps for submission as well. The first step was applying for developer credentials on the various platforms.
Android cost me a one-time $25 fee for processing the application. My developer credentials for Most Wanted Web Services were provided by Google within 24 hours.
Windows cost me a one-time $99 fee for processing the application as a business. Within an hour of my submitting my application and fee, Symantec was contacting me to verify my business identity. Then, the next business day I received a call from Dun & Bradstreet verifying the company identity, and assigning a DUNS number. It was within an hour after that phone call that I received an email from Microsoft welcoming me to the Microsoft Developers program.
Apple costs an annual $99 fee for access to their developers tools. It's been almost two monthsw and I am still waiting for Apple to license my business, and not me personally. Like Microsoft, Apple verifies the business identity through Dun & Bradstreet. However, unlike Microsoft, I needed to contact D&B, requesting the information be sent to Apple. The response from D&B thanked me for my request, and they are processing it, but it will take 14 business days for Apple to receive the information. After those 2 weeks, I contacted Apple to process my application, AGAIN, and they responded back the there was some information missing from Dun & Bradstreet, so I needed them to update that information to submit again. Once again, this information will take 14 business days for Apple to be able to access. Four times this has been done, and four times I get the same form letter from Apple. So, I'm still waiting on Apple to get out of the dark ages, and come into the 21st century.
I do find it curious that both Microsoft and Apple both use D&B to verify the indentity of a business, but where it can only take Microsoft 1 business day to verify, it takes at a minimum 14 business days for Apple. Is Apple just slow? Antiquated? Behind the times? Interested more in making life hell for potential app developers? All of the above? At the time of this writing, it's been just over 2 months and Apple still isn't on the ball. Think I'm building up a very strong dislike of Apple at this point? Maybe that piece the the apple missing from their logo caused them to spoil?
Anyway, in the meantime, it was time to start doing builds and submitting them to the app stores so those affiliated with my client could download the app. To do your builds there are some prerequisites that need to be met in order to build for all platforms.
If you have Windows devices, such as I, and a large number of app developers, have, you're 2/3 of the way to building and submitting your apps. Before starting the build process, here is what you need to do:
1. If you have only Windows devices, get in your car and head to BestBuy. Windows and Android are cross platform compatible development tools. However, for Apple you can only build, and submit, your apps using XCode and Application Loader. These tools will only work on a Mac computer. Not an iPad, not an iPhone, not any other device except an expensive Mac. So, to build for Apple, you need to fork over a minimum of $1,000 at BestBuy to get a Mac computer to build and submit your apps to Apple. Other times it's not getting used you'll have a very expensive paperweight.
2. After your trip to BestBuy head over to the liquor store. Buy alcohol. Look in your cart and add more bottles to the cart.
OK, now on to the building and bundling of the apps.
To build for Android, open your app in Visual Studio. Once it's loaded, change the build type from Debug to Release. Change the emulator from Ripple to either Device or Google Android Emulator, and click start. Sit back and wait. Your build will be compiled with all the necessary plugins, using the Android signing key. Once the compile is complete, you need to make some screenshots, then head over to your Google Play Developers account, log in, create your app profile, and submit your newly created build. Google will then process the submission, check for viruses, malware, suspicious code, and test on numerous Android devices. This process takes less than 1/2 a day, usually within 1 to 2 hours.
For Windows, change the platform from Android to one of the Windows profiles. Then go to the Project menu, Store, then click on Create App Packages. Once the wizard loads, follow the steps in the wizard. When you get to the Select and Configure Packages page, uncheck Neutral, but ensure that the other profiles are checked. Click the Create button, and sit back and relax while Visual Studio builds 3 different app packages for Windows (Phone, tablet, and desktop). Once completed, go to your Windows Store Developers account, and upload your 3 app builds to Microsoft. Just like with Android, Microsoft will process the submission, check for viruses, malware, suspicious code, and will test on multiple Windows devices. As with Android, this process takes less than a day, usually 1 to 3 hours.
Now for Apple. Go through your new Mac and ensure it's setup, then go in and make sure that every available update for your Mac is downloaded and installed. Next go to the App Store and search for XCode. This is a 3.8GB file that you must get and install on your Mac. As I write this, I'm having to reinstall XCode, and it's telling me that it's going to take over 6 hours to download. I guess I should just end my day and go to the gym, have dinner, maybe go to a movie, and it might be ready. Note: XCode will only work with 100% of Apple updates installed. If a single update is missing, the install of XCode will fail, as it is not backward compatible like software on other operating systems. If it fails, prepare to download again once you track down what caused the failure.
At this point in the process, your newly submitted Android and Windows apps are likely processed and ready for official publishing in their respective stores. Check that before leaving your Mac to work away, and before having a night on the town. Although there isn't much money to have much fun, since you had to blow over $1,000 that day on a Mac that you only need for app building.
Once you get back from your night on the town, if your Mac has successfully downloaded and installed XCode, you are ready to move on to the next step. Step one is to get the liquor you purchased after spending over $1,000 on a Mac for this process. In order to build for iOS on your Mac using Visual Studio, you first need to install node.js on your Mac, as a root user. Then there are some NPM tools that you will need to install, such as Remote Build (more information on this on the Visual Studio website). Be aware of errors that can, and may, present themselves repeatedly. When innocuous error do occur, remember that you have the alcohol that you purchased to help calm your nerves. Note: according to Apple documentation, you should be able to install tools as root but simply using the sudo command. After half a dozen attempts, and it continuously failing in the build/install process of Remote Build, I found some innocuous hard to find documentation on how to enable root in El Capitan (root is disabled by default, but they don't tell you). Logged in as root and was finally able to install the necessary NPM packages. At this point, I had over 400 downloads on Android, but iOS users still have to wait.
Once everything is installed on your Mac, go back to Visual Studio and follow the directions on setting up Apple remote build settings, then begin the build. Visual Studio will transmit the app code over to Apple XCode, remotely, which will compile the code for iOS, then transmit the compiled code back to Visual Studio, which will then save the package. Once completed, the Visual Studio package needs to be copied over to a folder on the Mac, then submitted to the iTunes Store using Application Loader found within XCode. Once you submit your app (the first time or any updates), Apple will then process the submission, check for viruses, malware, suspicious code, and test on numerous Apple devices. This process takes up to 10 days for Apple to process. Yes, 10 days, where other platforms take less than a day. My personal experience is it took 4 days for the initial build, and 3 days for an update.
All in all, coding myself may have been more work, but I have so much more flexibility. And with my experience with Apple in this process, do you think that I am much of an Apple fan?