The Best Open Source Mo­bile App De­vel­op­ment Frame­works

Have you ever imag­ined a day with­out your mo­bile (rather, smart mo­bile) phone? Prob­a­bly not, since mo­bile ap­pli­ca­tions have now be­come part and par­cel of our lives. Read on to learn more about the pop­u­lar mo­bile app de­vel­op­ment lan­guages and frame­works.

OpenSource For You - - Contents -

If we flash back to 1973, when Martin Cooper and John F. Mitchell of Mo­torola came up with the first mo­bile phone, they prob­a­bly never dreamt that their in­ven­tion would one day be­come such an es­sen­tial part of ev­ery­one’s life. As we tra­verse from 3G to 4G and now inch to­wards 5G, our mo­bile phones have be­come smarter and smarter. So what is it that makes them smarter? We will all agree that it is the wide range of ap­pli­ca­tions on our mo­bile phones that should be given the credit for this.

Ac­cord­ing to Statista, a Ger­many-head­quar­tered por­tal for mar­ket re­search, statistics and business in­tel­li­gence, as of March 2017, An­droid mo­bile users can now choose from as many as 2.8 mil­lion mo­bile apps in the Google Play store, while iOS users have as many as 2.2 mil­lion mo­bile ap­pli­ca­tions avail­able in Ap­ple’s App store for their use. Many ev­ery­day tasks are now per­formed with the help of a mo­bile app.

A mo­bile ap­pli­ca­tion is just soft­ware de­signed to run on dif­fer­ent mo­bile de­vices or tablets. The saga of mo­bile app de­vel­op­ment be­gan in 1998 with Snake—the first mo­bile app that came as a stan­dard pre­loaded game in Nokia mo­bile phones. Since then, we have made many gi­ant leaps for­ward. In fact, most Web apps are now switch­ing to mo­bile ver­sions be­cause of the tremen­dous in­crease in the num­ber of smart­phone users. Peo­ple find their smart­phones hand­ier and more com­pact as com­pared to lap­tops or desk­tops. A mo­bile app gives de­vel­op­ers the power to put their prod­uct di­rectly in the hands of the user. All this has led to a sud­den surge in the de­vel­op­ment of var­i­ous mo­bile ap­pli­ca­tions. Google came up with the Google Play store (ear­lier An­droid Mar­ket) in Oc­to­ber 2008, and it now sup­ports around 493 mil­lion down­loads all across the globe on a daily ba­sis. Since In­dia is go­ing dig­i­tal at a su­per speed, this again of­fers tremen­dous op­por­tu­ni­ties to de­velop dif­fer­ent mo­bile ap­pli­ca­tions. Just af­ter de­mon­eti­sa­tion, BHIM, Paytm and other such on­line pay­ment ap­pli­ca­tions were adopted widely.

Mo­bile ap­pli­ca­tion de­vel­op­ers re­ally need to look into all the pos­si­ble glitches that could arise when the app is in

use and work on all of them. The ul­ti­mate users should not suf­fer any ma­jor con­se­quences due to short­com­ings in the app. A mo­bile app de­vel­oper not only takes care of the de­vel­op­ment of the mo­bile ap­pli­ca­tion but also needs to ad­dress as­pects like us­abil­ity, per­for­mance, ef­fi­ciency and other such user ex­pec­ta­tions. In or­der to in­cor­po­rate all these as­pects with­out any bugs, a mo­bile ap­pli­ca­tion de­vel­op­ment frame­work is used, which brings dif­fer­ent mo­bile ap­pli­ca­tion de­vel­op­ers onto the same plat­form.

Mo­bile app de­vel­op­ment for dif­fer­ent OSs

De­vel­op­ing apps for mo­bile de­vices re­quires tak­ing into con­sid­er­a­tion the dif­fer­ent con­straints and fea­tures of these de­vices. These in­clude a wide ar­ray of spec­i­fi­ca­tions such as screen size, hardware specs, mo­bile con­fig­u­ra­tions and the plat­form or OS used by the mo­bile de­vice. And be­cause op­er­at­ing sys­tems are so dif­fer­ent, apps de­vel­oped for iOS, for in­stance, may not work on An­droid.

Mo­bile ap­pli­ca­tion de­vel­op­ment for An­droid: As of 2016, An­droid had the largest in­stalled base of any mo­bile op­er­at­ing sys­tem, and the most num­ber of mo­bile apps built so far are for An­droid. The An­droid OS uses a Linux ker­nel with some higher-level APIs, which are writ­ten in C. Dif­fer­ent mo­bile apps run­ning on this OS are nor­mally pro­grammed in Java, and they run with the Dalvik vir­tual ma­chine us­ing so called just-in-time com­pi­la­tion to trans­late the Java byte code into Dalvik dex-code. This adds some of the se­cure fea­tures to these apps, like ef­fi­cient shared mem­ory man­age­ment, UNIX user iden­ti­fiers (UIDs), pre-emp­tive multi-task­ing, and file per­mis­sion with the type safe con­cept of Java. An­droid Stu­dio is widely used to de­velop dif­fer­ent mo­bile apps.

Mo­bile ap­pli­ca­tion de­vel­op­ment for iOS: iOS is a mo­bile op­er­at­ing sys­tem de­vel­oped by Ap­ple Inc. and is used ex­clu­sively for Ap­ple hardware. It’s built on the open source Dar­win core op­er­at­ing sys­tem. Most of the apps in Ap­ple’s App store are writ­ten us­ing the Ob­jec­tive-C pro­gram­ming lan­guage. iOS mo­bile app de­vel­op­ers typ­i­cally use Xcode. To build an iOS app, a de­vel­oper must use Mac OS X since other op­er­at­ing sys­tems are not sup­ported. The de­vel­op­ment tools that are re­quired for this are iOS 7 SDK and Xcode 5. The built iOS mo­bile app can be run us­ing the iOS sim­u­la­tor, which is a part of the iOS SDK. In or­der to run these apps on a real de­vice, they have to be made avail­able in Ap­ple’s App store.

Mo­bile ap­pli­ca­tion de­vel­op­ment for Win­dows: Win­dows Phone is a closed source smart­phone op­er­at­ing sys­tem de­vel­oped by Mi­crosoft. The Win­dows Phone ker­nel han­dles ac­cess to the low-level de­vice driv­ers.

It also takes care of ba­sic se­cu­rity, stor­age and the net­work­ing fea­tures of the mo­bile phone. Any Win­dows mo­bile app can make use of these fea­tures. Apart from these, there are three li­braries - App Model for ap­pli­ca­tion man­age­ment, a cloud in­te­gra­tion mod­ule for Web searches via Bing, and a UI model for user in­ter­face man­age­ment. All three of these can be used to de­velop apps for Win­dows. XAML is used by Win­dows Phone apps for the UI and C# or Vis­ual Ba­sic for the code de­vel­op­ment. Those fa­mil­iar with C++ can de­velop a Direc­t3D app for Win­dows Phone 8 in that lan­guage by tak­ing full ad­van­tage of the phone’s graph­ics hardware.

Cross-plat­form tech­nol­ogy of mo­bile app de­vel­op­ment

The mo­bile apps de­vel­oped us­ing cross-plat­form or hy­brid tech­nol­ogy can run on more than one plat­form at a time, with­out any in­ter­ven­tion from de­vel­op­ers to cre­ate sep­a­rate ver­sions of ap­pli­ca­tion code. Hy­brid mo­bile ap­pli­ca­tions are essen­tially writ­ten as Web ap­pli­ca­tions us­ing HTML, JavaScript and CSS. They are al­ready em­bed­ded within a ‘na­tive wrap­per’ al­low­ing dif­fer­ent ap­pli­ca­tions built us­ing

this tech­nol­ogy to run on any de­vice while by­pass­ing the re­stric­tions of browser-only ap­pli­ca­tion func­tion­al­ity. Cross­plat­form soft­ware ba­si­cally com­piles a sin­gle ap­pli­ca­tion source code into the na­tive code that runs on dif­fer­ent OSs, let­ting de­vel­op­ers work on the same source code.

Re­quire­ments for mo­bile app de­vel­op­ment

Let’s have a look at all that a mo­bile app de­vel­oper needs to take care of be­fore start­ing off.

1. Un­der­stand and lo­cate the prob­lem or pain points that peo­ple ex­pe­ri­ence and come up with the sim­plest, most ef­fec­tive and unique so­lu­tion for this. Some mar­ket re­search may be needed for this.

2. Set tar­gets and build a strate­gic plan to work upon ac­cord­ing to the re­quire­ments of the client. This helps to avoid any un­ex­pected changes in be­tween and com­plete the de­vel­op­ment task in time.

3. Choose the right tech­nol­ogy as this re­ally plays a de­ci­sive role in the long run. Tech­nol­ogy is re­ally evolv­ing at a rapid pace and de­vel­op­ers al­ways want to opt for the lat­est tech­nol­ogy dur­ing app de­vel­op­ment. They need to be in sync with the lat­est tech­nol­ogy trends if they want to make a strong im­pres­sion in the ap­pli­ca­tion store. It’s al­ways rec­om­mended that a mo­bile app should first be fo­cused at one spe­cific plat­form. It can be launched on mul­ti­ple plat­forms, sub­se­quently.

4. Al­ways go for user-cen­tric de­signs as the user ex­pe­ri­ence (UX) is an ex­tremely cru­cial con­sid­er­a­tion in the de­sign of any mo­bile ap­pli­ca­tion. The UX is closely linked to other as­pects like the user in­put mech­a­nism and user in­ter­ac­tion de­sign.

5. Pri­ori­tise the ef­fi­ciency and per­for­mance of the mo­bile app that needs to be de­vel­oped. Rapid re­sponse time and a sta­ble per­for­mance with­out crash­ing are the key per­for­mance cri­te­ria by which any user ranks a mo­bile ap­pli­ca­tion.

6. De­fine the tar­get au­di­ence or the end users of the mo­bile ap­pli­ca­tion as they will im­pact how you de­velop your mo­bile app. All ques­tions, such as the end users of the app, and how it’s go­ing to help them, need to be an­swered well be­fore hand. If we meet our users’ ex­pec­ta­tions, our smart­phone ap­pli­ca­tion is likely to get more pop­u­lar.

7. Plan for an ef­fec­tive test­ing process to be fol­lowed be­fore the app ac­tu­ally hits the mar­ket. Keep in mind the per­for­mance, ef­fi­ciency and load test­ing of the mo­bile app.

8. Help peo­ple save time and money, as that in­creases the chance of your app be­ing down­loaded. If you are suc­cess­ful in this, then you have nailed it, and your ap­pli­ca­tion is likely to get the de­served at­ten­tion.

9. Know your bud­get in ad­vance. Con­sider all the steps in­cluded in the de­vel­op­ment process which in­volve money, and prop­erly al­lo­cate a bud­get for each stage.

Open source pro­gram­ming lan­guages used for mo­bile ap­pli­ca­tion de­vel­op­ment

We know that a mo­bile app is noth­ing but a piece of code which per­forms the spec­i­fied task, and code can be writ­ten in mul­ti­ple pro­gram­ming lan­guages. Now let’s look at some of the open source pro­gram­ming lan­guages widely used for mo­bile app de­vel­op­ment.

Ob­jec­tive-C: This is the pri­mary open source pro­gram­ming lan­guage used for dif­fer­ent iOS ap­pli­ca­tions. Ob­jec­tive-C was ac­tu­ally cho­sen by Ap­ple to build apps that are scal­able and ro­bust. In spite of be­ing a C-lan­guage su­per­set, it does ac­tu­ally have a num­ber of func­tions that pre­cisely deal with I/O, graph­ics and dis­play func­tions. Ob­jec­tive-C is com­pletely in­te­grated into all the iOS and MacOS frame­works. How­ever, it’s now be­ing slowly re­placed by a more pow­er­ful open source lan­guage called Swift.

HTML5: HTML5 is one of the ideal open source pro­gram­ming lan­guages if you are look­ing to build a Web front-end app for mo­bile de­vices. It makes var­i­ous data types quite sim­ple to in­sert, ra­tio­nalises in­put pa­ram­e­ters and ac­counts for dif­fer­ent screen sizes, and also lev­els the browser play­ing field. It’s cur­rently sup­ported in dif­fer­ent ways by var­i­ous browsers. If we look at HTML5 from a cost-ef­fi­ciency point of view, it has the ad­van­tage of build­ing on the lat­est ver­sion of HTML, which makes the learn­ing process sim­pler than that for a com­pletely new lan­guage.

Swift: Swift is the lat­est open source pro­gram­ming lan­guage to en­ter the Ap­ple ecosys­tem. It is mainly used to write code for Ap­ple’s lat­est APIs, Co­coa and even Co­coa Touch. In spite of the fact that this lan­guage is writ­ten to work along with Ob­jec­tive-C, the Cupertino based com­pany is al­ways en­cour­ag­ing iOS de­vel­op­ers to switch to Swift for com­plete pro­gram­ming. It’s de­signed to elim­i­nate many of the se­cu­rity vul­ner­a­bil­i­ties that are as­so­ci­ated with Ob­jec­tive-C.

Java: Java is one of the most pre­ferred lan­guages for An­droid app de­vel­op­ment. It’s an ob­ject-ori­ented pro­gram­ming lan­guage which was de­vel­oped at Sun Mi­crosys­tems. It can be run in two dif­fer­ent ways — by us­ing a browser win­dow, or in a vir­tual ma­chine with­out

a browser. This is quite use­ful in reusing code and even up­dat­ing soft­ware. Although it does not have much to do with iOS mo­bile app de­vel­op­ment, it cer­tainly can be on our list, par­tic­u­larly for apps for dif­fer­ent plat­forms.

Python: Python is a high-level lan­guage that can be used to de­velop An­droid and desk­top ap­pli­ca­tions from scratch. It is an ob­ject-ori­ented lan­guage, which is pro­cessed at run­time by the in­ter­preter. It’s easy to learn, easy to read and is quite easy to scale. It sup­ports all types of GUI apps and runs on Win­dows, Mac, UNIX and Linux.

Best open source mo­bile app de­vel­op­ment frame­works

As dis­cussed in the be­gin­ning, mo­bile app de­vel­op­ers make use of dif­fer­ent frame­works in or­der to come out with bugfree and er­ror-free apps. Here are some great open source frame­works.

Frame­work 7: This frame­work has been the top choice for the de­vel­op­ment of dif­fer­ent iOS apps. Since it of­fers An­droid sup­port as well now, it’s ac­tu­ally a good op­tion if we want to start with iOS and then build an An­droid ver­sion of an app, with an iOS look and feel. Its main ad­van­tage is that it helps de­vel­op­ers to build dif­fer­ent iOS ap­pli­ca­tions with just JavaScript, CSS and HTML, which most app de­vel­op­ers al­ready know.

Fea­tures

1. Pro­vides sup­port for build­ing dif­fer­ent cross-plat­form hy­brid mo­bile ap­pli­ca­tions

2. Finest and rich frame­work with the most fea­tures for iOS hy­brid ap­pli­ca­tion de­vel­op­ment

3. Ma­te­rial de­sign UI

4. Na­tive scrolling

5. 1:1 page an­i­ma­tion

6. A cus­tom DOM li­brary

7. XHR caching and preload­ing jQuery Mo­bile: This open source mo­bile ap­pli­ca­tion de­vel­op­ment frame­work has a large and com­mit­ted user base in spite of the fact that it lacks many of the ad­vanced fea­tures of most pack­ages. This is be­cause of its sim­plic­ity and other fea­tures like ‘write once and run any­where’. It’s ac­tu­ally a good choice for the sim­ple ap­pli­ca­tions that need to run on Win­dows and Black­Berry phones. The main fo­cus of jQuery is to em­power its de­vel­op­ers to build mo­bile apps that run seam­lessly and with a unique user ex­pe­ri­ence across all mo­biles and tablets. It does not ac­tu­ally fo­cus on pro­vid­ing the na­tive look and feel to apps, for in­di­vid­ual plat­forms like iOS and An­droid.

Fea­tures

1. Light­weight

2. Equipped with dif­fer­ent theme de­signs

3. Se­man­tic mark-up

4. Pro­gres­sive en­hance­ment

5. Phone Gap/Cor­dova sup­port

Kendo UI: Kendo UI is a frame­work used for build­ing any kind of hy­brid mo­bile ap­pli­ca­tion with JavaScript, HTML5 and CSS. It is avail­able in open source as well as in com­mer­cial ver­sions. It of­fers a wide range of UI wid­gets and plug­ins. It is be­ing main­tained and sup­ported by Telerik, and has a large cus­tomer base, which in­cludes dif­fer­ent or­gan­i­sa­tions like NASA, Sony, Mi­crosoft, Toshiba and Volvo.

Fea­tures

1. Re­lies heav­ily on jQuery

2. Equipped with more than 70 ready-to-use jQuery wid­gets

3. Has nu­mer­ous pre­built themes added with Ma­te­rial De­sign styling, and a theme builder for cus­tomised op­tions

4. An­gu­lar and Boot­strap UI in­te­gra­tion

5. Per­for­mance can be op­ti­mised as per needs

Mo­bile An­gu­lar UI: This open source frame­work com­bines An­gu­larJS and the mod­i­fied ver­sion of Twit­ter’s Boot­strap, and con­verts them into a mo­bile UI de­vel­op­ment frame­work. It sup­pos­edly re­tains most of Boot­strap 3’s syn­tax for eas­ier Web-to-mo­bile porta­bil­ity while adding dif­fer­ent mo­bile com­po­nents that are miss­ing from Boot­strap, like over­lays, switches, side­bars, fixed-po­si­tioned nav­i­ga­tion bars and scrol­lable ar­eas. It con­sists of dif­fer­ent li­braries like over­throw.js and fastclick.js. It is avail­able for free use un­der the MIT li­cence.

Fea­tures

1. Pro­vides the best of both the An­gu­lar frame­work and Boot­strap 3 to build dif­fer­ent HTML5 mo­bile ap­pli­ca­tions

2. No de­pen­den­cies to jQuery or Boot­strap js

3. Uses fastclick.js and over­throw.js li­braries for a smooth mo­bile ex­pe­ri­ence

4. Mo­bile An­gu­lar UI used in this frame­work pro­vides var­i­ous di­rec­tives for build­ing UI com­po­nents like switches, side­bars, etc

Sen­cha Touch: This is a frame­work used for build­ing cross-plat­form end-to-end mo­bile ap­pli­ca­tions with HTML5 and JavaScript. It is avail­able in both open source and li­censed ver­sions. It pro­vides a vis­ual ap­pli­ca­tion builder for HTML5, help­ing to re­use dif­fer­ent cus­tom com­po­nents. Ex­tJS, one of the pop­u­lar JavaScript frame­works, is ac­tu­ally at the core of Sen­cha touch plat­form. It helps to cre­ate high per­for­mance ap­pli­ca­tions with a near-na­tive ex­pe­ri­ence.

Fea­tures

1. Con­sists of ready-to-use wid­gets with a na­tive look and feel for all the lead­ing plat­forms like An­droid, iOS, Win­dows Phone and Black­Berry

2. Also has a drag-and-drop HTML5 vis­ual ap­pli­ca­tion builder with a lot of ready-to-use tem­plates

3. Cus­tomised com­po­nents can be built and added to the li­brary for re­use across mo­bile ap­pli­ca­tions

Fig­ure 2: Some im­por­tant facts for mo­bile ap­pli­ca­tions and users (Im­age source: googleim­ages.com)

Fig­ure 1: Cat­e­gories of mo­bile ap­pli­ca­tions for de­vel­op­ment (Im­age source: googleim­ages.com)

Fig­ure 3: The most pop­u­lar mo­bile ap­pli­ca­tions (In­for­ma­tion source: Statista)

Fig­ure 4: Fea­tures of Frame­work 7 (Im­age source: googleim­ages.com)

Fig­ure 5: Kun­doUI ar­chi­tec­ture (im­age source: googleim­ages.com)

Fig­ure 6: Hy­brid mo­bile app de­vel­op­ment us­ing Sen­cha Touch (Im­age source: googleim­ages.com)

Newspapers in English

Newspapers from India

© PressReader. All rights reserved.