Remember when you were a junior developer and you were given your first project? You had your shiny new company computer and were told that a new piece of software had to be produced within a given time frame. How did you get started developing it? Maybe you had a corporate onboarding experience, and everything came set up on your computer. Maybe you were sent with a budget to the Apple Store and got a nice new Mac with nothing installed. In either scenario, at some point you have probably been in the situation where you had a software project to deliver, but did not have an environment ready to meet the requirements to deliver it. Initializing...install fest, right?
image courtesy of DaVinci Coders
The new mobile developer may find him or herself feeling the same sense of frustrated exhilaration when handed a mobile project to develop. Even a seasoned developer in the constantly changing mobile space might get a little confused when faced with the choices of development tooling for mobile apps. Can you use your current favorite toolset? Do you need to learn new software to create the app? Can your current machine even handle it?
To narrow down the swirling questions, here is a useful checklist:
- What kind of mobile app will you be developing: native, hybrid or something else?
- What is your current preferred method of development. Does your current setup facilitate mobile development?
- Are you comfortable using the command line? Or do you prefer to work in a browser, using an IDE toolset like Visual Studio or Eclipse? Or, do you prefer using a text editor?
- What is the app destined for--one particular device exclusively or a mix of Android, Windows Phone and iOS?
No matter how you answer the four questions in the checklist, the good news is Telerik AppBuilder can support your mobile app development requirements. In our recent webinar, "Let's Build an App in 60 Seconds," we discussed the ways AppBuilder can make your life a lot easier as a mobile developer.
Because the machine you're using for mobile development is different from the one your end users will use to access the final product, there is a curious disjunction between your work and your user's interaction with it. This calls for a somewhat complex setup that will possibly require:
- A special configuration of your local machine
- A virtual machine, if you are a Windows user needing to support iOS apps or a Mac user developing a Windows app
- Hardware for debugging (simulators and emulators are helpful, but, eventually, you will need to test on-device)
- A way to test on myriad end user devices
AppBuilder offers three primary ways of developing a mobile app: within a browser, using an IDE with AppBuilder plugins and via the command line. Once you choose your primary method of development, you aren't locked into using just one. For example, my typical workflow when building a hybrid mobile app is:
- Create the app using the AppBuilder command line, and push the code to Github periodically.
- Continue to develop on my local computer using Sublime Text with the AppBuilder plugin.
- Frequently check my work locally using the AppBuilder simulator.
- Deploy to device when more extensive testing is required, using the AppBuilder companion app.
- Build an app package for iOS and Android and deploy to device using a locally-stored provisioning profile.
- When almost ready to move to the app stores, create a project in the in-browser toolset in Telerik Platform and sync my Github repo. Polish the app's assets, such as icons and splash screens, and import them to Telerik Platform. Once the app store submission is ready, publish from Telerik Platform.
Let's take a look at these three modes of development:
Develop In the Browser
After signing in to your account on Telerik Platform, you can create an app in the browser:
AppBuilder offers a wide variety of ways to scaffold your app, whether hybrid using a framework such as Kendo UI Mobile, or a Native app using NativeScript. You can start fresh or import code from a repository. Try the powerful ScreenBuilder toolset to scaffold a great-looking app:
Use the in-browser simulator to get a view of what you are building, and test scenarios such as loss of connectivity and location changes. You can also use browser-based developer tools, such as the console, to debug.
The in-browser toolset provides a powerful way for an individual or team to build a mobile app from start to finish.
Develop Using Your Favorite IDE
If you prefer not to work in a browser, you have plenty of other options.
Visual Studio users can use the AppBuilder Visual Studio Extension to be able to use this great environment.
Sublime Text users can use the AppBuilder Sublime Plugin to ease development.
The standalone Windows client offers a desktop app environment for app development.
Develop Using the CLI
Scaffolding an app on your local computer is extremely easy when working straight from the command line. Open your Terminal on a Mac machine, or the Command Prompt on a Windows machine, and use npm (Node Package Manager) to install AppBuilder locally:
$ npm install -g appbuilder
appbuilder -h to view all the commands available to you:
A combination of a text editor and the CLI can get you from zero to app stores in a very efficient way. For the more advanced user who likes minimal tooling, this may the solution that will work for you.
Once you have completed some development and are ready to start testing on a device, you will need to make sure your test devices are ready for the process. A streamlined way to test on-device is by means of the AppBuilder Companion App. This system is available for iOS, Android and Windows Phone, and enables you to distribute your app to testers using barcodes, without having to provision test devices.
If you need to test your app on a larger group of devices, you can provision your testers' devices within AppManager, a tool available in Telerik Platform, to create a test group of provisioned devices and distribute versions of your app prior to publication of the version to the app stores. Using LiveSync on AppManager is a particularly powerful way to distribute hot fixes to your app without requiring your test users to perform a fresh download.
Let's Get to Work!
A tremendous number of decisions about building a mobile app must be answered, even before you write a line of code. It's great there are tools available to simply let you do what you do best--code--while supporting your efforts throughout the app lifecycle.