Our Mobile App Development process is a result of a decade of experience in the beautiful trenches of the software development world. We clearly understand what works and what doesn’t. Rather than spending vast amount of time in talking about stuff, we believe in getting the work done. The best way to build apps is through what we call “Progressive Elaboration”.
In simple terms, we start off with creating mock-ups and prototypes that allow our customers to first hand look at what the final product will be like. Through a combination of SCRUM, lean and XP practices, our team brings to the table valuable expertise, which is demonstrated through excellent ready to ship apps.
Our typical project team is made of:
Each project starts of with a Visioning process. Visioning is analogous to chartering the project. In this stage, we focus on linking the project with the customer’s goals. We strive to understand the customer’s goals and offer solutions around the best strategy. We document a set of high-level requirements and review the business case to understand technical feasibility.
The next stage in the development process is the overall product planning. In addition to the major deliverables, we also capture high level time lines and costs. In this stage, we document the features that the App is expected to have and classify the relative importance of each feature. This allows us to establish the sequence in which the features will be built.
Once we have a signed off product back log, we decide on the total number of sprints or iterations. Each iteration is a fixed period of time where a selected set of features are designed, built, tested and completed. At the end of each iteration, we have a retrospective meeting with the customer where we show the demo and get feedback. The customer then decides on the next set of features for the next iteration which may include changes from the previous iterations.
We don’t end our engagement with our customers. Rather, we like to help our customers grow by providing enhancements, updates and changes in line with the customer’s business needs.
There are 3 major development targets that we work on. Each of the native frameworks comes with certain expectations and a user base. iPhone and Android user base is far more widespread.
iOS, the technology that is run on Apple mobile devices, has benefits and limitations specific to its development cycle. The base language is Objective-C and Swift, with Cocoa Touch as the interface layer. At this time iOS can be developed only using Apple's XCode, which can run only on a Macintosh.
The Android framework, on the other hand, is written in Java, and can be developed using any Java tools. The specific tooling recommended by Google and the Android community is Eclipse with the Android toolkit. Unlike iOS, it can be developed on PC, Mac, or Linux.
The decision to create a mobile application can be difficult. It's not a decision to rush into, and it requires a great deal of thought. A mobile application can be an opportunity to improve interaction with customers, create brand awareness, and even create additional revenue. But if the objectives of the app are unclear, customers can be upset, and money can be lost.
Should I build a native mobile App?
The following list provides some scenarios where a native app would be the best solution:
- If you require graphics and processing power
- If you require the use of the device's camera
- If you need to use the device's microphone
- If you require access to the device's address book
- If you require access to the device's media library
- If you will be using the market for payment
- If you require use of push notifications
- If you need to run as a background service
- If you want to design a game
Just because you develop an app does not mean it will be successful: it must provide value.
Although users will visit hundreds of websites in a day, they will install only a few apps. Does your app provide enough value that the user is going to take the time to download it and keep it in their list of installed apps? The only way to determine if you app has value is user research. This research can be a simple question/answer session among peers, or could be a formal user research study.
Support and Maintenance
Mobile apps are software projects, just like any other. They take care and feeding; a little more than a standard website, in some cases. Mobile development is similar to desktop development in many ways. Once you deploy it, it's deployed and there is not a good way to update the app. You can’t force users to get updates to the app, and when they find a bug you fixed two versions ago, they will give you poor feedback in the market. Sure, when you publish an update of your app to the market, it shows up in the available downloads, but most users do not update their apps.
The developer accounts for iOS, Android and BlackBerry all contain tools that show the stack traces of runtime errors that are uploaded from your app on the customer's phone. We make sure we are being proactive, and go through the logs and look for errors before someone lets you know about them.
Benefits of a Mobile App
Not only will your marketing department get to brag about your newly developed mobile application using the latest technology, but numerous other reasons exist why it may make sense to develop a mobile app as opposed to a mobile web app.
Make Use of the Native Devices Features
It will always be easier to stretch the hardware boundaries of a mobile app. Great features such as in-app purchasing do not have the same tight integration with the UI and operating system unless you are creating a native app. Even if you decide to go with a non-native solution such as Titanium, PhoneGap, or MonoTouch, these solutions are slow to adapt new features in a platform's operating system.
Sometimes it's not about being on the bleeding edge of technology; it's just delivering value to your customer.
You may have heard that content is king; it is absolutely true in mobile apps. Many business apps need to display changing data to the user. Depending on the business domain, a mobile web app may not be a good idea. For example, a mobile application that lists all of the state legislators requires the data of the app to come from someplace. The state capital in Michigan does not get reliable cellular coverage, so for this app to function properly, an offline caching strategy should be used. When having the data stored locally, you should also define a strategy on how that offline data is going to be updated. Is it updated when the app is updated through the market or perhaps there a background service that checks to see if the device has access to the Internet, and prompts the user if they would like to obtain a refreshed set of data.
Richer User Experience
Users generally provide higher ratings for apps that have the native interface. No matter how nice the iOS interface is, if you create an Android app and provide UI elements from iOS, users are more likely to rate your app lower.
Users look for apps that have a UI that is consistent with the rest of the apps on their device. It is possible to create HTML and CSS that provide these interfaces on a mobile web app, but it can get difficult. Many developers opt for creating interfaces that do not resemble iOS, Android, Windows Phone 7, or BlackBerry. It's a design the developer created on their own. Such a design strategy can work, as long as the correct amount of user interface research has been performed. In most cases, however, it's best to just stick with the UI you should be working with, which is the native UI for the platform.
Ease of Discovery
Markets provide a place to present your app to the world. Most users are not using a search engine to find apps for their mobile devices; they are using the built-in search tools within the installed market tool.
In recent years, text messages (simple message service [SMS]) have become the preferred communication over instant messaging among young people. An instant notification on your mobile device means an immediate response is expected. Push notifications simulate the same behavior of text messages, but are app based. Push notifications alert users of something that they should be aware of instantly: a new e-mail, a new tweet, or some other bit of information that may be important to the app that was downloaded.
Increased Customer Feedback
Businesses often hope to build brand loyalty through apps. When loyalty has been achieved, you can capitalize on this loyalty within the app, asking for feedback about your company. Quick polls, short forms, and rich integration with social media services such as Facebook and Twitter can provide a level of feedback that is not seen with mobile web apps.
YOUR APP AS A MOBILE WEB APP
Mobile web apps are an extremely popular solution to the “mobile app versus mobile website” problem, because they are relatively easy to create and maintain. The popularity of mobile web apps has grown proportionately to the popularity of smartphones.
Mobile web apps, in a nutshell, are mobile apps created using HTML and CSS, viewed in mobile web browsers. Mobile web apps differ from mobile websites by having a focused application purpose, like native mobile apps do.
A good mobile web app will have business logic abstracted into a common library. This will allow for platform-specific UI code to be created that calls into this common library, keeping the app easily maintainable.
Native vs HTML5 Device Features
If you are looking for a fast solution that can be developed with resources you may already have access to, a mobile web app may be the better solution. The following benefits may sway your decision in favor of creating a mobile web app:
- Easier to get started: HTML is a popular technology, so there is a good chance that the developers on the team will already have experience with the language. Besides the ease of use of the language, there are no startup costs, licenses, or large SDKs to download as there is with native app development. Most developers are willing to learn something new, but are overworked. When they want to get into something, they want to do it now, not have to wait for two weeks before they can get going.
- Easier cross-platform development: Creating a mobile web app will make it easier for you to create a codebase where parts of it can be shared. Depending on the app type, be prepared to create a new UI for each platform deployment.
- HTML5 offers rich features: We have all heard that HTML5 makes it easy to create mobile web apps. HTML5 offers great new features that make mobile web apps a viable solution instead of developing a mobile app. The truth is that HTML5 is just a tool in a mobile developer’s belt, and with it, developers and designers can provide apps to users that are usable and compete with native mobile apps.
- Easier updates: Not all users will update your mobile app. But if you have control over what the user sees, app updates can be made at any time. This is one of our favorite features about mobile web apps. With a mobile web app, there is no complicated process for publishing — it is just like launching any regular website.
- No approval process: With a mobile web app, there are no constraints as to if your app can be published or not. When the Google Voice app was not approved in the iTunes store, Google released a mobile web app that provided the same functionality without the iTunes hassle.
When creating a mobile strategy, it's important that companies spend the time to find out exactly which model fits best for their business domain. Starting down the wrong path can be costly, and be detrimental to a company's reputation. This chapter has stressed the importance and necessity of a mobile web presence, and that app development should not be taken lightly nor rushed into because it is trendy.
Creating a mobile web app can be the better solution if it fits your business domain. The ease of updates and use of existing resources are very compelling reasons to build a mobile web app.
When you are creating a truly great app that provides user value, there are no shortcuts to build once and run everywhere. Developing an app for mobile platforms is expensive and time-consuming, but if your business domain calls for it, it's in investment that needs to be made.
At this point, you should have a really good idea of what a mobile application is, and what platforms you will look into developing for.