Nativescript O Architecture O Developer Experience O Future Goals • Conclusions Hybrid Approaches

Total Page:16

File Type:pdf, Size:1020Kb

Nativescript O Architecture O Developer Experience O Future Goals • Conclusions Hybrid Approaches Runtime Based Hybrid Apps Ruben Smeets Kris Aerts ES&S 26/04/2016 Agenda • Hybrid Approaches • Runtime Based CPT Candidates • Comparison of Titanium / React Native / NativeScript o Architecture o Developer Experience o Future goals • Conclusions Hybrid Approaches WebView Based Runtime Based WebView Container JavaScript Runtime Web Code JavaScript HTML CSS JS Native UI + Device APIs Device APIs Hybrid Approaches WebView Based Web Code UI frameworks & libs DOM - based WebGL - based React Canvas Famo.us + Architectural frameworks Combined frameworks Hybrid Approaches WebView Based Web Code Pure Hybrid Apps Tools Properties UI frameworks & libs • Single WebView • Content & navigation DOM - based WebGL - based in HTML5 • Thin native wrapper React Canvas Famo.us + Architectural frameworks Combined frameworks Hybrid Approaches WebView Based Web Code Pure Hybrid Apps Tools Properties UI frameworks & libs • Single WebView • Content & navigation DOM - based WebGL - based in HTML5 • Thin native wrapper React Canvas Mixed hybrid Apps Pattern Tools Properties • Multiple WebViews Famo.us Blended • Native navigation • E.g.: Apple Store + • WebViews for later stages of Architectural Mullet user flow frameworks • E.g.: Walmart • WebViews for little used or frequently Combined frameworks Fallback changing content • E.g.: Instagram Hybrid Approaches Runtime Based WebView Based Runtime Based WebView Container JavaScript Runtime Web Code JavaScript HTML CSS JS Native UI + Device APIs Device APIs Hybrid Approaches Runtime Based – The “WHY” • Consistent with platform • Fast and responsive • Complex gestures and smooth animations • No knowledge & code sharing • Different technology stacks • Slow iteration speeds* • Hard to scale *Android Instant Run Hybrid Approaches Runtime Based – The “WHY” continued • HTML / CSS / JavaScript • Same code and technologies • Frameworks provide scaling • F5 / ⌘+R • Very hard to provide smooth experiences • Not designed for complex interactions • Feel out of place with the platform Hybrid Approaches Runtime Based – The “WHY” continued Web advantages • JSX / XML / CSS / JavaScript • Same code and technologies • Frameworks provide scaling • Live-reload Native advantages • Consistent with platform • Fast and responsive UI • Complex gestures and smooth 60fps animations Hybrid Approaches Runtime Based – The “HOW” JavaScript Runtime Composition • Native side JavaScript • JavaScript side • JS-to-native bridge Key concepts Native UI • Proxy objects + Device APIs • Asynchronous calls Runtime Based CPT Candidates Titanium React Native Nativescript Fusetools TabrisJS Smartface Announced 2008 2015 2014 2015 2014 2011 Version V5.2.2 V0.24 V1.7 V0.12 V1.7 v4.5.0 Android Android Android Android Android Android 4.0.x – 6.0.x 4.1.x – 6.0.x 4.2.x – 6.0.x 4.2.x – 6.0.x 3.7.x - 5.x 4.2.x – 6.0.x Platforms iOS iOS iOS iOS iOS iOS 7.1.x – 9.2.x 7.0.x – 9.2.x 7.1.x – 9.2.x 7.1.x – 9.2.x 6.x - 8.x 7.1.x – 9.2.x WP8.1-UWP UWP (alpha) UWP (alpha) 11658 556 2300 5871 634 63 Popularity 23564 72340 7142 16028 252 1102 2063 30206 6393 / 384 / 2303 3439 259 1119 2 283 Popularity numbers are checked on 04/2016 Agenda • Hybrid Approaches • Runtime Based CPT Candidates • Comparison of Titanium / React Native / NativeScript o Architecture o Developer Experience o Future goals • Conclusions Architecture Comparing Ti vs RN vs {N} Architecture – Used Technologies Programming • JavaScript (ES5) • XML mark-up • TSS styling (CSS-like styling) Layout system • Relative to parent view Comparing Ti vs RN vs {N} Architecture – Used Technologies Examples views/index.xml styles/index.tss controllers/index.js Comparing Ti vs RN vs {N} Architecture – Used Technologies Programming • JavaScript (ES5) • JavaScript (ES6+ES7 • XML mark-up using Babel transpiler) • JSX (XML like mark-up • TSS styling (CSS-like language) styling) • JavaScript “inline” styles • Flow (static type checker for JavaScript) Layout system • Relative to parent view • Flexbox Comparing Ti vs RN vs {N} Architecture – Used Technologies Examples index.ios.js • Mixing XML-like mark-up inside JavaScript • Inline styles Comparing Ti vs RN vs {N} Architecture – Used Technologies Programming • JavaScript (ES5) • JavaScript (ES6+ES7 • JavaScript (ES5) or • XML mark-up using Babel transpiler) Typescript (ES6+ES7) • JSX (XML like mark-up • XML mark-up • TSS styling (CSS-like language) styling) • JavaScript “inline” • CSS styling styles • Flow (static type checker for JavaScript) Layout system • Relative to parent view • Flexbox • Native layout sys. Comparing Ti vs RN vs {N} Architecture – Used Technologies Examples View/home/home.xml View/home/home.css View/home/home.js Comparing Ti vs RN vs {N} Architecture – Application Structure Design Pattern • MVC (using Alloy) Additional concepts Philosophy • Write once, adapt everywhere Comparing Ti vs RN vs {N} Architecture – Application Structure Comparing Ti vs RN vs {N} Architecture – Application Structure MVC Data Package: uses BackboneJS models and collections Comparing Ti vs RN vs {N} Architecture – Application Structure Design Pattern • MVC (using Alloy) • Flux or Redux (unidirectional data flow) Additional concepts • React Components • Virtual DOM • Used as part of app Philosophy • Write once, adapt • Learn once, write everywhere anywhere (changed to horizontal platform) Comparing Ti vs RN vs {N} Architecture – Application Structure Comparing Ti vs RN vs {N} Architecture – Application Structure ReactJS One way data flow inside components ReactJS: Keep Simple. Everything can be a component! – Pedro Nauck Comparing Ti vs RN vs {N} Architecture – Application Structure Flux Manage one-way dataflow inside the application https://facebook.github.io/flux/docs/overview.html Comparing Ti vs RN vs {N} Architecture – Application Structure VirtualDOM React Virtual DOM vs Incremental DOM vs Ember’s Glimmer: Fight - Sebastián Peyrott Comparing Ti vs RN vs {N} Architecture – Application Structure Design Pattern • MVC (using Alloy) • Flux or Redux • MVC or MVVM (unidirectional data flow) Additional concepts • React Components • Virtual DOM • Used as part of app Philosophy • Write once, adapt • Learn once, write • Write once, run everywhere anywhere (changed to everywhere horizontal platform) Comparing Ti vs RN vs {N} Architecture – Application Structure Comparing Ti vs RN vs {N} Architecture – Application Structure MVVM (View-Model) User-viewModel.js (Model) User.js (View) First Name Form.xml Last Name First Name: ... Last Name: … Hotel (View-Model) Name: … Hotel-viewModel.js (Model) Name Hotel.js • Two-way data binding • Observables • Increased testability • Code reusability Comparing Ti vs RN vs {N} Architecture – Runtime Architecture Properties • 2 Threads • Main UI thread • JS thread • Asynchronous • Serializable (iOS) • Spawn native threads for work offloading Comparing Ti vs RN vs {N} Architecture – Runtime Architecture Various Proxies: • Proxy • Module • ViewProxy • View Titanium documentation Comparing Ti vs RN vs {N} Architecture – Runtime Architecture Properties • 2 Threads • 3 Threads • Main UI thread • Shadow thread • JS thread • Main UI thread • Asynchronous • JS thread • Serializable (iOS) • Asynchronous • Spawn native threads • Batched native calls for work offloading • Serializable Comparing Ti vs RN vs {N} Architecture – Runtime Architecture Native 1 Event 8 Update UI (touch, timer, networks, etc.) (if needed) 2 Collect data and notify JS 7 Process commands 3 Serialized payload 6 Serialized response React Native Bridge Call 0 - ∞ 4 Process event 5 Native methods JavaScriptCore Under the hood of React Native - Martin Konicek Comparing Ti vs RN vs {N} Architecture – Runtime Architecture Ex. RN Worker UI Event Queue JS Event Queue Event Queue(s) 2 Handle Event 1 Touch Event àbridge à Runs JS 3 Dispatch View 4 Update UI Updates Image decode, Disk I/O, Layout, Etc. Under the hood of React Native - Martin Konicek Comparing Ti vs RN vs {N} Architecture – Runtime Architecture Properties • 2 Threads • 3 Threads • 2 Threads • Main UI thread • Shadow thread • Main UI thread • JS thread • Main UI thread • JS thread • Asynchronous • JS thread • Asynchronous • Serializable (iOS) • Asynchronous • Direct native API • Spawn native threads • Batched native calls access for work offloading • Serializable Note: every bridge has a type conversion mechanism Comparing Ti vs RN vs {N} Architecture – Runtime Architecture Native Native APIs Call Dispatcher Type-conversion marshalling service Calls JavaScript functions Meta-data NativeScript runtime Bindings Calls native API using JavaScript App Code JavaScript (JS ES5 & Libraries Typescript) JavaScript VM How NativeScript Works - Te l e ri k Comparing Ti vs RN vs {N} Architecture – Runtime Architecture Ex. V8 JavaScript Engine var file = new java.io.File( path ); File = FileProxy Native Type conversion Service Android java.lang.String Metadata java.io.File() Call dispatcher java.io.File() How NativeScript Works - Te l e ri k Comparing Ti vs RN vs {N} Architecture – Modularity Options • Titanium modules • React Native modules • NativeScript • Built-in (100+) • Build-in (60+) modules • gitTrio community • JS Coach (1000+) • Build-in (54) modules and widgets • Cordova plugin • Community (1351) + (674) integration NPM (198) • Appcelerator modules • CocoaPods/ Java • Verified (open source) (27) marketplace (13) JAR integration • Marketplace (383) • Telerik UI for • NPM JS libraries • NPM JS libraries (no DOM reliance) NativeScript (4) through titaniumifier • CocoaPods/ Java (no DOM reliance) JAR integration • NPM JS libraries (no DOM
Recommended publications
  • Comparison and Evaluation of Cross Platform Mobile Application Development Tools
    International Journal of Applied Mathematics, Electronics and Computers 8(4): 273-281, 2020 INTERNATIONAL JOURNAL OF APPLIED MATHEMATICS International Open Access ELECTRONICS AND COMPUTERS Volume 08 Issue 04 www.dergipark.org.tr/ijamec e-ISSN: 2147-8228 December, 2020 Research Article Comparison and Evaluation of Cross Platform Mobile Application Development Tools Mehmet ISITAN a , Murat KOKLU b a Sakarya University, Faculty of Computer and Information Science, Department of Software Engineering b Selcuk University, Faculty of Technology, Department of Computer Engineering ARTICLE INFO ABSTRACT Article history: In order to develop a mobile application, it is necessary to develop software separately for each Received 28 November 2020 operating system to be outputted. In response to this problem, frameworks that can give application Accepted 6 December 2020 outputs for more than one operating system by developing applications on only one platform have Keywords: been developed. With the recent diversification of these systems, which are called cross platform Cross Platform, mobile application development tools, which one should be preferred has become a problem for Mobile Development, Mobile Frameworks, developers. In this study, the cross-platform mobile application development tools that have come One Code to the fore in recent years will be determined and evaluated separately based on the pros and cons of distinguishing parameters. With the help of the applications to be developed, values such as processor, memory, battery and network usage, rendering time, opening time, installation file size, application size will be measured. It is also aimed to help developers find out which framework is more suitable for their needs by comparing them on topics such as popularity, third party software support, operating systems that can be outputted, development languages and ease of use, speed - performance.
    [Show full text]
  • Native Cross-Platform Mobile Application Development
    Native Cross-platform Mobile Application Development by W. de Kraker (0815283) CMI-Program Informatics – Rotterdam University August 14, 2012 First supervisor Mr. Y. S. Tjang Second supervisor Mr. A. Chamani Abstract Nowadays mobile devices are vastly integrated into modern society. They bring us one step closer to satisfy our ever growing need to have information available anytime, anywhere. To help gain access to information on mobile devices we use software applications, so called apps. However, the fragmented nature of today’s mobile ecosystem poses a challenge for developers to develop apps which are suitable to run on all mobile devices, since there is no de facto standard in cross-platform app development. Currently there are several solutions available to solve the cross-platform challenge. Lunatech, having expressed its interest in mobile app development, would like to know which solution, if any, suits Lunatechs needs. A study has been set up in order to resolve this question, the results of which are laid out in this thesis. ii Versions Version Date Author Details 0.1 12/07/2012 W. de Kraker Intial draft 0.2 20/07/2012 W. de Kraker Improved main research structure 0.3 08/08/2012 W. de Kraker Changes based on feedback from Mr. Y.S. Tjang 0.4 12/08/2012 W. de Kraker Changes based on feedback from Mr. S. de Kaper 1.0 14/08/2012 W. de Kraker Final version Table 1: Version history iii Preface You are looking at the thesis for the graduation internship on the subject of "cross-platform mobile application development while retaining the native look and feel".
    [Show full text]
  • Survey on Techniques for Cross Platform Mobile Application Development
    International Journal of Advanced Research in Computer Engineering & Technology (IJARCET) Volume 3 Issue 10, October 2014 Survey on Techniques for Cross Platform Mobile Application Development Apurva P. Pawar, Vandana S. Jagtap, Mamta S. Bhamare Abstract— Smart phone is used by most of the population. Different internal architecture of Operating System Over thousands of applications are used daily and a new becomes a reason for redevelopment of application to make it application gets launched as per need. In order to do work on run on each Operating System which in turn incurs lot of cost phones itself many desktop applications are getting converted to mobile version by developers. And it’s real challenge to market in terms of time, money, efforts. Consider example of are these applications and reach to the maximum users. From document editor software like Adobe Reader and Kingsoft developer point of view for application to reach to most of the office. People are also doing work through their Smartphone end users it need to run on max platforms, this needs too. It‘s not necessary that everyone is using windows redevelopment of application, we can solve this problem to some operating system on their Smartphone. Each mobile operating extent by developing cross platform application without system uses different programming model, developer would additional investment. Several techniques are available which will help to make it happen. Survey of these techniques could require additional overhead and troubleshooting since help application developers to make a proper choice. developer might have good hands on particular single platform. Hence, making software as cross platform Index Terms— Cross Compiled Approach, Cross Platform application can be a good option.
    [Show full text]
  • Mobile Application Development Approaches: a Comparative Analysis on the Use of Storage Space
    XXIV Congreso Argentino de Ciencias de la Computación Tandil - 8 al 12 de octubre de 2018 Mobile Application Development Approaches: A Comparative Analysis on the Use of Storage Space Juan Fernández Sosa1, Pablo Thomas1, Lisandro Delía1, Germán Cáseres1, Leonardo Corbalán1, Fernando Tesone1, Alfonso Cuitiño1, Patricia Pesado1 1 Computer Science Research Institute LIDI (III-LIDI)* School of Computer Science, National University of La Plata, La Plata, Buenos Aires, Argentina *Partner Center of the Scientific Research Agency of the Province of Buenos Aires (CICPBA) { jfernandez, pthomas, ldelia, gcaseres, corbalan, ftesone, acuitino,ppesado}@lidi.info.unlp.edu.ar Summary. The purpose of software development is meeting both functional and non-functional requirements. In mobile device applications, non-functional requirements are more relevant due to the restrictions inherent to these devices. One of these restrictions is the availability of limited storage space. Therefore, the size of a mobile application affects user preference for use. In this article, we assess how the choice of a mobile application development approach affects the final size of the application; we focus our analysis on text-, audio- and video-based applications. Keywords: Mobile devices, multi-platform mobile applications, native mobile applications, application size. 1 Introduction Application development for mobile devices poses a number of challenges specific to this activity that were not present in traditional software development [1]. The diversity of platforms, programming languages, and development tools, as well as device heterogeneity as regards computation power, storage and battery life, are just some of the aspects that Software Engineers have to consider. In many cases, the success of an application for mobile devices depends on its popularity.
    [Show full text]
  • MOBILE APPLICATION - CROSS DOMAIN DEVELOPMENT and STUDY of PHONEGAP IJCRR Section: Healthcare Sci
    Review Article MOBILE APPLICATION - CROSS DOMAIN DEVELOPMENT AND STUDY OF PHONEGAP IJCRR Section: Healthcare Sci. Journal Impact Factor Mathangi Krishnamurthi 4.016 Information Technology Department, Pune Institute of Computer Technologies, Pune, MS, India. ABSTRACT There has been a significant development in the market for smart devices and its computational power in the last decade. The combination of computational power, easy portability, inherent features and the ease with which it reaches the common man has propelled this development. The need for mobile solutions has increased exponentially due to the easy and prevalent access to these smart devices. The dilemma met by those wanting to target these consumers was mainly as to which methodology to adopt. Given the fragmented Smartphone market, native development of application was found resource wise and financially not lucrative. There came a need for a “Develop One Time, Deploy anywhere anytime” solution. So this has been solved by the cross-platform mobile application development tool. Phonegap is one such popular framework which embeds HTML5 and CSS3 to provide the needed functionality. Given its generic nature, there is still some need for consideration of its performance as op- posed to a native application. Key Words: Smart devices, Cross-platform development, Phonegap INTRODUCTION CHALLENGES IN MOBILE APPLICATION DEVEL- OPMENT There has been an immense development in the domain of mobile devices. Recent data claims 95.5% of the world pop- Universal user interface ulation have a mobile service subscription [1].The reason for Each platform that is device specific has some guidelines this may include, Smartphones rival the traditional resources to follow for the development of the user interface [3].
    [Show full text]
  • The New Mobile Development Landscape
    The New Mobile Development Landscape © 2017 Progress. All Rights Reserved. All Rights © 2017 Progress. 2018 EBOOK Table of Contents Introduction / 3 Mobile Development The Early Days / 4 Mobile Development Today / 5 Native Development / 6 Browser Development Evolves / 8 Mobile Application Development Platforms (MADP) / 11 Hybrid Mobile Apps / 14 JavaScript-Driven Native Apps / 18 Other Types of Native Apps / 22 Making The Transition / 23 Testing Your Apps / 24 Building Your Mobile App Back-End / 25 © 2018 Progress. All Rights Reserved. All Rights © 2018 Progress. Conclusion / 26 Progress 2 If you poke around on the Internet, you’ll find hundreds or even thousands of frameworks and platforms designed to make platform mobile development easy. There’s almost too many of them to keep track of, and nobody knows which ones are the best, and which ones are worthless. If you’re part of a one to five-person development shop, you can afford to play around at the options to see which works best for you and your apps, potentially even switching approaches between apps. Larger development shops have to think big; the decisions they make around development approach and platform or framework selection have a long term impact on the cost and effectiveness of their development effort. Changing course months or years later means considerable expense migrating off of a flawed or abandoned platform to the shiny new approach. Development organizations must be smart, making the right choice at the app’s creation, knowing that the approach they’ve selected works for the long haul. We’ve created this ebook to help you make smart choices about how you build modern mobile apps.
    [Show full text]
  • 201 Exploring Cross-Platform Tools for Mobile Development: Lessons Learned
    mLearning: Tips and Techniques for Development and Implementation November 14 & 15, 2013 201 Exploring Cross-platform Tools For Mobile Development: Lessons Learned Perry Bennett mLearning: Tips and Techniques for Development and Implementation — November 14 & 15, 2013 Exploring Cross-platform Tools for Mobile Development: Lessons Learned Perry Bennett 2013 Nov 14 Overview . What is Cross-platform Mobile Development? . Pros and Cons of Cross-platform Tools . Tools: Adobe AIR, PhoneGap, Titanium SDK, Corona SDK, Unity, and Responsive Web Design Session 201 – Exploring Cross-platform Tools For Mobile Page 1 Development: Lessons Learned – Perry Bennett mLearning: Tips and Techniques for Development and Implementation — November 14 & 15, 2013 Native Hybrid Web http://applaudservices.com/wp-content/uploads/2013/02/various-mobile-devices.gif 3 Have We Been Here Before? http://www.paulirish.com/2010/high-res-browser-icons/ 4 Session 201 – Exploring Cross-platform Tools For Mobile Page 2 Development: Lessons Learned – Perry Bennett mLearning: Tips and Techniques for Development and Implementation — November 14 & 15, 2013 http://www.androidauthority.com/samsungs-26-screens-226746/ 5 Pros: Reusable Code Base http://http://en.wikipedia.org/wiki/File:Recycle001.svg 6 Session 201 – Exploring Cross-platform Tools For Mobile Page 3 Development: Lessons Learned – Perry Bennett mLearning: Tips and Techniques for Development and Implementation — November 14 & 15, 2013 Pros: Maintenance http://www.techradar.com/news/phone-and-communications/mobile- 7 phones/android-4-1-vs-windows-phone-8-vs-ios-6-1086326
    [Show full text]
  • Project Report CROSS PLATFORM MOBILE APPLICATION DEVELOPMENT
    Project Report on CROSS PLATFORM MOBILE APPLICATION DEVELOPMENT In partial fulfillment for the award of the degree of B. Tech. (CSE) Session: 2018-2019 in Under the Supervision of: Submitted By: Dr. Pradeep Kumar Singh Shivam Sharma Assistant Professor (Senior Grade) Univ. Roll No. 151436 Department of Computer Science & Engineering and Information Technology Jaypee University of Information Technology Waknaghat, Solan-173234, Himachal Pradesh Certificate Candidate’s Declaration This particular report entitled "Cross Platform Mobile Application Development" at partial satisfaction of the needs for the awarding of the B.Tech. degree at CSE/IT filed at the Department of CSE/IT, (JUIT) Waknaghat is a real record of my work completed over a period from August, 2018 to May, 2019 under the oversight of (Dr.Pradeep Kumar Singh) (Assistant Professor, Senior Grade, CSE/IT). The content included in the report hasn't yet been filed anywhere for awarding of any other diploma/degree. (Student Signature) Shivam Sharma, 151436 It is to certify that the preceding statement made by the candidate will be accurate to the best of my understanding. (Supervisor Signature) Supervisor Name: Dr.Pradeep Kumar Singh Designation: Assistant Professor (Senior Grade) Department name: CSE/IT Dated: ACKNOWLEDGEMENT I want take this chance to thank almighty for blessing me with his grace and taking my job to a successful culmination. I extend my sincere and heartfelt thanks to my esteemed project supervisor, Dr. Pradeep Kumar Singh, for providing me with the important guidance and advice at the crucial junctures during coding, while preparing project report and also for guiding me towards right way.
    [Show full text]
  • Mobile App Development: Choosing the Best Development Tools in Practical Labs Dr
    Teaching Mobile App Development: Choosing the best development tools in practical labs Dr. Daniel Dang Dr. David Skelton Eastern Institute of Technology Eastern Institute of Technology [email protected] [email protected] ABSTRACT As mobile app development becomes more mainstream, many educational institutions in New Zealand recognize a need to integrate this subject into the programming-related curriculum. However, one challenge is to select the best framework and development tool to use in the practical labs amongst many available frameworks. Choosing the right tool and language is an important factor for success in teaching and learning within this subject. This paper first presents a detailed discussion on different development tools (language) - Android Studio (Java/Kotlin), Xcode (Swift), Flutter (Dart), React Native (JavaScript), Ionic (HTML5, CSS3, TypeScript), Xamarin (C#), Cordova (HTML5, CSS3, JavaScript), and Appcelerator (JavaScript). This paper concludes by suggesting that the Android Studio IDE (Java) and Flutter Framework are ideal choices for use within practical labs. By using Android Studio, students are able to develop native apps, which are usually high-performance and good user interface, for Android devices. By using the Flutter framework, which is integrated into Android Studio, students gain the capability of creating cross-platform apps running on both Android and iOS smartphones. Furthermore, the paper recommends a collection of eight specific topics which should be covered in the practical sessions to provide students with sufficient technical skills to develop all types of mobile apps at their disposition. While the focus is on the Android platform, these topics can be used to teach other native iOS or cross-platform apps.
    [Show full text]
  • Evaluation of Cross-Platform Tools for Mobile Development Bachelor of Science Thesis in Software Engineering and Management
    Evaluation of Cross-Platform Tools for Mobile Development Bachelor of Science Thesis in Software Engineering and Management ALIREZA PAZIRANDEH EVELINA VOROBYEVA University of Gothenburg Chalmers University of Technology Department of Computer Science and Engineering Göteborg, Sweden, June 2013 The Author grants to Chalmers University of Technology and University of Gothenburg the non-exclusive right to publish the Work electronically and in a non-commercial purpose make it accessible on the Internet. The Author warrants that he/she is the author to the Work, and warrants that the Work does not contain text, pictures or other material that violates copyright law. The Author shall, when transferring the rights of the Work to a third party (for example a publisher or a company), acknowledge the third party about this agreement. If the Author has signed a copyright agreement with a third party regarding the Work, the Author warrants hereby that he/she has obtained any necessary permission from this third party to let Chalmers University of Technology and University of Gothenburg store the Work electronically and make it accessible on the Internet. Evaluation of Cross-Platform Tools for Mobile Development Alireza Pazirandeh Evelina Vorobyeva © Alireza Pazirandeh, June 2013. © Evelina Vorobyeva, June 2013. Examiner: Morgan Ericsson University of Gothenburg Chalmers University of Technology Department of Computer Science and Engineering SE-412 96 Göteborg Sweden Telephone + 46 (0)31-772 1000 Department of Computer Science and Engineering Göteborg,
    [Show full text]
  • White Paper Discusses five Popular, Tried and Tested Tools/Sdks to Create Robust Hybrid Mobile Applications
    5 Popular Hybrid Mobile App Toolkits – How do they compare? Mohammed Nissar Trigent Software Trigent 2 Willow Street, Suite 201, Southborough, MA 01745 1-877-387-4436 www.trigent.com Trigent Software, Inc. All trademarks, marked and unmarked, are the property of their respective owners. ABSTRACT Hybrid mobile applications, like websites, are built using web technologies such as HTML, CSS, and JavaScript. The main differentiator is that hybrid apps are hosted inside a native application wrapper that utilizes mobile platform's WebView. Hybrid applications can even leverage and use device capabilities such as the camera and other sensors. Since hybrid apps are normally built using web technologies, the primary question – “how the app will appear and behave on a mobile device” is on most developers' minds. To ensure that the user interface is suitable for mobile devices, hybrid mobile applications leverage tools and software development kits (SDKs) that provide a consistent set of JavaScript APIs to provide rich touch- optimized interface and to access device capabilities through plug-ins. This white paper discusses five popular, tried and tested Tools/SDKs to create robust hybrid mobile applications. Trigent 2 Willow Street, Suite 201, Southborough, MA 01745 1-877-387-4436 www.trigent.com Trigent Software, Inc. All trademarks, marked and unmarked, are the property of their respective owners. Introduction Hybrid Mobile application frameworks are mostly HTML5 mobile user interface (UI) frameworks which empower programmers to create cross-platform hybrid mobile apps using web technologies that programmers are familiar with, i.e. HTML5, CSS and JavaScript (JS). Hybrid applications are thus, websites' content that is 'wrapped' in native code.
    [Show full text]
  • Cross Pla Orm App Development Using Open Source So Ware Peter Dickten / Marcus Ross
    Cross pla)orm app development using open source so4ware Peter Dickten / Marcus Ross dcs-fuerth / zahlenhelfer Cross plaorm app development Support for mul3ple plaorms is essen3al for both enterprise and end users Relevant plaorms: • Apple iOS • Google Android • RIM Blackberry • MicrosoC Windows Phone 7 (?) 4 strategies to address mul3ple plaorms • Nave development for flexibility every plaorm • Cross-plaorm tools • WebView wrappers • MEAPs (mobile enterprise Speed of develop- applicaon plaorm) ment => M Strategy 1: Nave Development good (+) maximum flexibility (+) mature development tools (e.g. Xcode) (+) apps have the plaorm specific look & feel Strategy 1: Nave Development bad (-) which plaorms should I support? (-) high cost for the development of mul3ple clients (no code reuse) (-) very few developers with knowledge of more than one plaorm are available (-) adding one more plaorm is costly Strategy 1: Nave Development summary / conclusion deep pockets and lots of development 3me needed (even if client development is done in parallel => server side could be a development boleneck) => no solu3on for our customers (market research and event management) => P Strategy 2: Cross-plaorm tools What’s that? • Development of a single source code in one language (e.g. JavaScript) • Cross compiling/translaon/embedding to several nave source codes (e.g. Obj.C/Java) • Usage of the nave controls on every plaorm Appcelerator Titanium, Rhomobile Rhodes Strategy 2: Cross-plaorm tools good (+) very flexible (+) one source code (with some duplicaon) (+) one language and one toolset for all plaorms (+) good look & feel Strategy 2: Cross-plaorm tools bad (-) case dis3nc3on needed for nice plaorm specific user interfaces (many resolu3ons/ aspect raos) (-) tool limits the number of supported plaorms (-) performance lower than purely nave apps (not a good choice for 3d shooter games) Strategy 2: Cross-plaorm tools summary / conclusion If the plaorms supported by the tool match the desired plaorms and the apps consist of more that graphics this could be a solu3on.
    [Show full text]