Saturday, September 12, 2015

Hybrid Mobile App Development with Intel XDK

About a year ago, the lure of developing my very first app and the opportunity to partner with a group of extremely creative people finally drove me to take the plunge into mobile app development.  This blog entry documents the odyssey of a 25 year software development veteran into "uncharted waters".

Native versus Hybrid 

Traditionally -- it seems odd to associate that word with something that has been around for little more than 5 years -- all mobile apps were native.  That is, native mobile apps are developed directly for a particular target device family.  Specifically, a native app is developed for iOS devices and written in Objective-C or developed for Android OS and written in Java.  However, there is now another option; a so-called hybrid mobile app.  Hybrid mobile apps are developed without (direct) concern for the target device.  Instead, the app is written using standard web technologies -- HTML5, CSS3 and Javascript -- and "wrapped" in a lightweight, native WebView.  By using such technologies, we are promised portability.

As you might expect, the primary trade-off to consider when selecting between the 2 approaches is improved performance (native) versus greater compatibility (hybrid).

Mostly because I use these standard web technologies on an almost daily basis, and I have not touched any variation of the C language in over 10 years, plus the fact that I did not anticipate any particular need for blazing performance, I chose to travel the hybrid mobile app path.

Tool Selection

The incredible churn in the range, capabilities and even branding of hybrid mobile app tools was intimidating, making my second decision much trickier than the first.  I considered many of the tools recommended by a variety of technical websites including:
  • app.js
  • jQuery Mobile
  • Kendo UI
  • Sencha Touch
  • Ionic
  • Intel XDK
  • Titanium Mobile
  • Knockout
  • Montage
For me, my first gate was cost.  If I perceived any possibility of an expense in implementing a tool, it was eliminated from the shortlist.  Out went Kendo UI.  Secondly, I looked at server/hosting complexity.  I also expected to use a pre-existing domain/host that offered no support for Angular or node.js.  Goodbye app.js and Ionic.  Thirdly, given my experience with them, I wanted to ensure that the tool offered tight integration with jQuery and Bootstrap.  Finally, I looked at intangibles.  Based upon some negative comments and my own lukewarm experience using it as part of a webapp project, I eliminated jQuery Mobile.

In the end, I think what really sold me on Intel XDK was the breadth of functionality provided right out-of-the-box and its intuitive workflow.  In particular, Intel XDK offered direct support for many UI frameworks, including Bootstrap, its own App Framework, and, later, Framework7.  It provided in-the-cloud support for backbone.  It included a slick way to test and integrate web services.  The tool was tightly integrated with Cordova/PhoneGap and its family of plugins.  It offered multiple emulation and testing "modes".  It interfaced with each of these and more through an IDE that also offered a WYSIWYG builder.  I found the latter to be particularly useful during the first few months, trying to figure out the art of the possible.

Understanding Intel XDK's Project Options

Now that I had selected Intel XDK, I was then confronted with the selection of project options within the tool itself.   Like similar frameworks and IDEs, Intel XDK organizes solutions into projects (i.e., each of my hybrid mobile apps would have a corresponding project).  At project creation, Intel XDK presented me with a series of options that boiled down to this:
  • Do I want to use Cordova plugins in my app?
  • Do I want to build my app using the App Designer WYSIWYG builder?
  • Do I want to base my app on an existing sample or demo?
  • Which of the supported UI frameworks do I want to use in my app?
After a little experimentation, I arrived at the following answers:
  • Yes; unless you are building a truly trivial (or perhaps totally innovative app) there is almost certainly a Cordova plugin that you can leverage
  • Yes; in future, however, I might explore building an app without App Designer as its use can make for some tricky debugging and/or unnecessary code
  • No; although it was useful to independently review the code behind some of the samples and demos
  • App Framework; although I am already exploring the Bootstrap3 and Framework7 options

Apple Developer iOS Certificates, Identifiers and Profiles

There is also considerable set up required simply to allow your app be installed on iOS devices.  The dependencies are a little confusing but Intel XDK provides a guide, under the BUILD tab, that helps to clarify.  You need an Apple Developer ID with which you create certificates, define your apps, register devices (on which you want to test), and then generate a profile (typically, one per app).  This is all accomplished through the Apple Developer website.  You download the resulting profile file and install it into the Intel XDK project repository.  You then update the Intel XDK PROJECTS tab Build Settings to match the Apple Developer managed values (for App ID, App Name, Provisioning File, etc).

What Went Well

As previously mentioned, Intel XDK's focus on a soup-to-nuts solution really helped me to stay above water on a project that was my introduction to many terms, concepts and processes.  It really seemed intuitive and logical, to me at least, which is particularly impressive given the relative immaturity of app development.

I was also impressed with Intel XDK's efforts to provide responsive components out-of-the-box that I could easily test emulating multiple form factors.

I already had an inkling of the App Store Submission/Apple Developer process's labyrinthine nature.  Without Intel XDK's related guide, I might still be thrashing around trying to understand those dependencies.

The ability to easily deploy my app builds on device for "beta testing", before the actual App Store submission process, was a godsend.  I don't have any point-of-comparison, but I feel it unlikely that any other tool could make this more straightforward.

Not So Much

Even with Intel XDK's impressive breadth of functionality, I still needed to supplement my project development with:
  • Issue tracking (I used Github)
  • Authentication and authorization (I used Auth0)
  • Backend tools (I used PHP and MySQL, for which I needed separate IDEs)
Lack of built-in source code control was, perhaps, the most disconcerting aspect of working with the Intel XDK.  I did see a couple of general references to integration with tools (Github again, I think), but I never explored how practical that is.  The need for this was underscored by somewhat frequent crashing of the tool itself, although it is fair to say that the frequency of such crashes diminished as subsequent upgrades to the Intel XDK were made available (currently, I have been through about 5 such upgrades).

There is an almost dizzying array of variations within the Intel XDK, some that seemingly overlap (for example, the options under the BUILD tab).  Some of that seems to be the result of Intel's purchase and re-branding of what was once referred to as AppMobi.  This general sense of confusion around the plethora of decisions and options is further compounded by the lack of a single unifying and coherent set of documentation.

Next Time

For my next round of mobile app development, I will certainly consider the Intel XDK again.  Intel seems to be providing the resources to maintain and update its features.  This is absolutely critical given the ever-growing list of competitors and the rapid churn in the associated technologies.  I will also take a second look at Ionic and React.js.  You can be sure that I will also see what other tools have emerged in mobile app development.  I fully expect there to be a bunch more.

55 comments:

  1. no matter whether or not you\'re conscious or it could be not, most of us currently are living through the similar occasion, other than on the cell phone World wide web. kinds hawaiian islands related to info are generally your individual apps my personal husband or wife and also we install with MY PERSONAL touch screen phones, AND ALSO till not too long ago, we were looking at disconnected inside a great similar means In which early on web sites were no matter whether anyone required to take into consideration table a reservation, anyone would work USING specific phone tracker. no matter whether anyone required is the reason your bistro, anyone might Utilize a various other one.

    ReplyDelete
  2. The Singapore based company, JankoSoft is offering top-quality search engine optimization services and various other services at reasonable costs.

    seo company singapore
    web design company
    ecommerce website design singapore
    mobile app developer

    ReplyDelete
  3. Thanks for this information. Surely very important post for mobile app development users.
    mobile app developer jaipur

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. thanks for your valuable information. This important information will help app developer
    in their path.

    ReplyDelete
  6. Climb Your Business to the Top! IndaPoint Technologies is California's premiere website design california and web developer company. We have been serving Northern and Southern California

    ReplyDelete
  7. "ionic framework is perfectly suitable for hybrid application development in mobile app development services for their business app development and their success"!!!

    "Good blog thanks For share"!

    ios app development

    ReplyDelete
  8. Thank You for sharing your article. This is very informative article to hybrid mobile app development.
    Keep it up.
    mobile apps development company

    ReplyDelete
  9. Hi, I read your blog this is very informative. Thanks for share this blog. You can find dedicated Web designers, Mobile Application Developers, SEO and marketing specialists will tailor make the solution you want for your business. Know more about click here – www.hvantagetechnologies.com

    ReplyDelete
  10. Helpful blog great Information...

    Mobile Application Development Company

    We offer mobile app developers for hire at hourly or project basis very affordable rate Android application development company in India. Android ios app Developers in India and USA.

    ReplyDelete
  11. i find what you did really interesting. feel free to explore about mobile app development Singapore if you are interested in the field

    ReplyDelete


  12. Really its very useful information that you have shared and thanks for sharing the information with us.

    Ionic Framework Development Company India

    ReplyDelete
  13. Nice post. Thanks for sharing this useful information with us.
    Software Company in Lucknow

    ReplyDelete
  14. A great post and an informative blog on Mobile App development Best Mobile App Developers Chennai

    ReplyDelete
  15. That was an extremely interesting blog. The level of information your blogs provide is par excellence. Thanks for sharing your thoughts with us.

    Mobile App Company In Phoenix

    Mobile App Development Phoenix Az

    ReplyDelete
  16. Your blog is an interesting for reading. Thank you for Sharing.Mobile App development companies

    ReplyDelete
  17. Wonderful post. This is a nice post and gives in-depth information. Great tips!Website Redesigning Services

    ReplyDelete
  18. Nice blog. Thanks for sharing such great information.Inwizards Inc is a sench touch Development company offers quality sencha development services best in web industries. Intrested click here - Hire Sencha Touch Developer

    ReplyDelete
  19. Nice blog !! It is very informative article. The differences between hybrid and native are straight to the point and the tools information are very useful. There is another article by which you can get more insights about Native vs. Hybrid app development.

    ReplyDelete
  20. Truly beneficial piece of information allocated by you. I am sure this might be advantageous for a majority of seekers. Continue sharing. Professional Web design services are provided by W3BMINDS- Website designer in Lucknow.
    Web development Company | Web design company

    ReplyDelete
  21. Learn How to Create an app with AppQuick App Builder. Create an app for Andriod and IOS With no codding. We learn you also how to earn Money from app.

    For More Information Visit Here -- free app builder

    ReplyDelete
  22. Thank you for your post. This is excellent information. It is amazing and wonderful to visit your site.
    mobile app development in india
    web development company

    ReplyDelete
  23. Hello, Thanks for sharing such a great informative Article through this blog, From this article, I came to know the intel XDA technology for hybrid mobile app development and i will try to develop an app for sure by using Intel XDA tool.

    ReplyDelete
  24. This comment has been removed by the author.

    ReplyDelete
  25. AppQuick will teach you how to create an app in free. You can create an free app without coding in Android or iOS. AppQuick is the best app builder website.

    For More Information Visit Here -- App builder

    ReplyDelete
  26. Thanks for your post. This is excellent information. It is amazing and wonderful to visit his site.
    mobile app development company in usa

    ReplyDelete
  27. Unique article and good enough information about Hybrid Mobile App Development with Intel XDK for all Mobile App Developers.

    Jeevitha from Way2Smile (An Expert Mobile App Development Company in Chennai).

    ReplyDelete
  28. thanks for your valuable information. This important information will help ionic development company in india in their way.

    ReplyDelete
  29. Your blog is very useful for us and i love your topic mentioned in blog.

    Thank you

    For More Information Regarding This Topic Visit Here -- how to make an app

    ReplyDelete
  30. Thanks for the blog post buddy! Keep them coming...
    hybrib Development pakistan

    ReplyDelete
  31. Thanks for sharing the informative blog! Do you want your business to grow fast? If yes, then you must consider hybrid mobile app development.

    ReplyDelete
  32. Great information thanks for sharing it please keep sharing such information.
    Mobile App Development Phoenix

    ReplyDelete
  33. Mobile app development company in phoenix
    Sofhub– We provide our custom software development and designing services in USA & UAE. We are specializing in web designing, mobile app development. Contact us.

    ReplyDelete
  34. There is a lot of choice when it comes to programming languages for Developing Web Apps.That means you need to know what each language is good at before you can pick the best one for your project. That is why I am planning to write a series of blog posts to help you pick the right language for your next web app.

    ReplyDelete
  35. I have read all the comments and suggestions posted by the visitors for this article are very fine,We will wait for your next article so only.Thanks! phone tracker reviews

    ReplyDelete
  36. Thanks for sharing nice information with us. i like your post and all you share with us is uptodate and quite informative, i would like to bookmark the page so i can come here again to read you, as you have done a wonderful job. 1xbet indir

    ReplyDelete
  37. I really impressed after read this because of some quality work and informative thoughts . I just wanna say thanks for the writer and wish you all the best for coming!. telegram官网下载

    ReplyDelete
  38. I got too much interesting stuff on your blog. I guess I am not the only one having all the enjoyment here! Keep up the good work. digital experts

    ReplyDelete
  39. Thanks for taking the time to discuss that, I feel strongly about this and so really like getting to know more on this kind of field. Do you mind updating your blog post with additional insight? It should be really useful for all of us. mobile app development company

    ReplyDelete