Cross-Platform Solutions and Rhomobile Platform
Total Page:16
File Type:pdf, Size:1020Kb
Cross-platform solutions and Rhomobile platform ● Mobile cross-platform solutions overview ● Introducing of Rhomobile platform ● How to start with Rhomobile Enterprise mobile development specific Enterprise devices Consumer devices Special devices ● BYOD ● Win CE/WM still used ● Useful for many cases ● Migrate to Android ● iOS and Android dominate. ● A lot of software developed for WinCE/WM Enterprise mobile software specific By the device set : 1. iOS, Android, WinCE/WM - not one OS. Different H/W level of devices. 2. Special H/W 3. Special peripheral By software: 1. Sometimes just web portal is enough. 2. Access to special H/W 3. Databases synchronisation between mobile device and backend 4. Mobile application is just part of complex solution. OLD GOOD LEGACY DEVICES What is mobile application place in enterprise solution Mobile application is just part of complex solution ! mobile devices personal computers Backend servers Browser PC data Server WEB Browser MD data DB Application DB sync Application Other important things Cross-platform development is always a tradeoff! + + = + + + + Web technologies are dominate ! Mobile cross-platform solutions architectures Mobile cross-platform development architectures SImple not cross-platform Web Native Hybrid Mixed Hybrid Native Application cross-platform Application cross-platform Application cross-platform Application cross-platform Application Platform Browser UI Framework WebView Framework WebView platform dependent or UI HTML/CSS/JS code cross-platform UI + Logic code HTML/CSS/JS UI + Logic code Native code UI + Logic HTML/CSS/JS Logic Logic code cross-platform code cross-platform code Framework Framework Framework Platform API Platform API Platform API Platform API iOS: ObjC, Swift, C++ a lot of Xamarin (C#) Cordova/PhoneGap RhoMobile Cordova/PhoneGap with Android: Java, C++ HTML/CSS/JS frameworks Appcelerator (JS) + a lot of jxCore plugin, WinCE/WM: C#, C++ React Native (JS) HTML/CSS/JS frameworks RhoMobile (Ruby/JS) NativeScript (JS) + a lot of QT (C++, QML) HTML/CSS/JS frameworks RubyMotion (Ruby) CodenameOne (Java) Corona (Lua) Extended Browser - solution for lightweight web applications Sometimes we just need a lightweight web application with access to some H/W capabilities of device or some native API. RhoBrowser Adding a set of APIs into device browser we get a solution to execute our lightweight web applications (HTML/CSS/JS). Rhodes WebView Some of device vendors already have this kind of solution. For instance, Zebra UI + Logic Technologies has Enterprise Browser (based on RhoMobile, not on Cordova, and HTML/CSS/JS supporting WM/WinCE): code https://www.zebra.com/us/en/products/software/mobile-computers/mobile-app-utilities/e nterprise-browser.html local (open from filesystem) or remote (open from remote Honeywell also has similar product: http://www.intermec.com/products/ib/index.aspx server) Rhodes Framework Tau Technologies has similar product - RhoBrowser, which runs on iOS, Android, WinCE/WM and supporting Zebra’s enterprise devices (WM and Android) H/W capabilities like Barcode Platform API Peripherals scanner, RFID scanner etc. API Why cross-platform is good for enterprise development Cross-platform development ● cost reduce ● lower performance (not ● fast development actual for enterprise) ● OS specific supports by ● not modern OS UI (can be cross-platform solution solved by using of third-party provider JS solutions in hybrid ● small team platforms) ● reuse developers from other ● addiction from cross-platform directions (especially web solution provider (especially developers for hybrid for not open-source solutions) solutions) Good choice for enterprise mobile development ! Benefits of cross-platform development ● Cross-platform native solutions can decrease development resources up to two times ! Problems of not-hybrid solutions : ● Developers must learn specific API/Language ● Application’s code can not be used out of solution Benefits of hybrid solutions ● Hybrid Cross-platform solutions (like Cordova or RhoMobile) can decrease development resources up to three times ! Important benefits : ● You can use existing web developers ! ● You can use already developed code from web applications (HTML/CSS/JS) ! ● You can transfer your code from web portal to application and from one hybrid solution to another without changes ! Solutions on market Solutions on market Native Hybrid RubyMotion QT ● C++/QML. ● Own cross-platform UI. ● Specific for native solution: ○ high performance ○ specific API Name QT ○ hard addictive to solution Provider QT Company Website https://www.qt.io/ Type native Source code full Availability Platforms Sailfish PhoneGap ● PhoneGap “based on” Apache Cordova - https://cordova.apache.org/. Cordova it is solution for provide JavaScript calls from WebView to Native code. One cross-platform code, each platforms provide the same API. ● Also some market players provide own solution based on Cordova : IBM, Intel, Oracle etc. Name PhoneGap ● Very popular solution with wide support and large community Provider Adobe ● Leader on market hybrid cross-platform solutions Website http://phonegap.com/ Type hybrid Source code full Availability Platforms Appcelerator ● Javascript (similar to Xamarin but based on Javascript instead of .NET). ● Performance. ● cross-platform UI framework Alloy ● Specific API, hard addiction to solution. ● Javascript not the same with web because different Name Appcelerator Titanium environment and APIs. Provider Appcelerator Website http://www.appcelerator.com/ Type native Source code Availability Platforms Xamarin ● Based on open source .NET(from Mono project) for mobile platforms ● High performance ● Has cross-platform APIs and platform dependent Name Xamarin ● Developers can use platform dependent UI and cross-platform - Xamarin.Forms. Provider Microsoft ● Specific API, hard addiction to solution. Website https://www.xamarin.com/ ● Leader on market native cross-platform solutions Type native Source code full Availability Platforms NativeScript ● avascript (similar to Xamarin but based on Javascript instead of .NET). ● Performance. ● only platform dependent UI - JS wrappers to platform APIs ● Specific API, hard addiction to solution. Name NativeScript ● Javascript not the same with web because different Provider Progress Software Corporation environment and APIs. Website https://www.nativescript.org/ ● Deep integration with Angular Type native Source code full Availability Platforms Telerik ● Complex solution. ● Cloud components. ● NativeScript and Cordova ● Cloud services Name Telerik Platform Provider Progress Software Corporation Website http://www.telerik.com/platform Type hybrid / native Source code Availability Platforms ReactNative ● JavaScript. ● Platform dependent UI - JavaScript wrappers to platform APIs ● Based on React.js ● Developers must learn specific platform’s APIs Name React Native Provider Facebook Website https://facebook.github.io/react-native/ Type native Source code full Availability Platforms CodenameOne ● Java. ● cross-platform UI. ● Cloud building ● free version has limitations Name Codename One ● specific API Provider Codename One LTD ● hard addiction to solution Website https://www.codenameone.com/ Type native Source code semi Availability Platforms CoronaSDK ● Lua. ● cross-platform UI. ● Cloud building ● free version for 2D games development Name Corona SDK ● specific API Provider Corona Labs ● hard addiction to solution Website https://coronalabs.com/ Type native Source code Availability Platforms RubyMotion ● Ruby. ● cross-platform & platform specific APIs. RubyMotion ● Platform dependent UI. ● specific API Name RubyMotion ● hard addiction to solution Provider HipByte Website http://www.rubymotion.com/ Type native Source code Availability Platforms Kony ● Complex solution ● Cloud components ● Native or Cordova or Web ● Rich set of services (database related, analytics etc.) ● Data synchronisation Name Kony Mobility Platform ● Development studio, tools Provider Kony Website http://www.kony.com/ Type hybrid / native Source code Availability Platforms Rhomobile ● Hybrid and mixed-hybrid modes ● Ruby on Rails with local HTTP server on mobile device ! ● DB synchronisation between mobile application and remote backend server Name Rhomobile ● Complex solution oriented to enterprise. Provider TAU Technologies Website http://tau-technologies.com/ Type mixed hybrid Source code full Availability Platforms Sailfish From hybrid architecture to mixed-hybrid architecture Problems of hybrid solutions Main problem is all code and data is inside WebView Big application like big web Application will have low performance will run in single thread etc. Web-based UI does not look and feel like native one Not a big deal for in-house enterprise apps; Javascript UI frameworks can look almost like Native UI Different web browser versions Use own browser, Crosswalk for instance (https://crosswalk-project.org/) RhoMobile has own WebKit port for WinCE/WM. JS Frameworks also help. Mixed-hybrid architecture Mixed Hybrid How we can solve main problem of hybrid solutions ? cross-platform Application Extract not-UI code from WebView into separate threads and Framework WebView UI container ! HTML/CSS/JS code Mixed-Hybrid solution do it ! Logic cross-platform code Framework But how make it ? Platform API What language should we use ? How UI in WebView should be connected to logic and data ? Client-Server web application Wait a minute. We have a web browser with HTML/CSS/JS code and separate logic/DB ? But this is well