Muliplform Mobil App Dvlopmn J2ObjC by Kis Grgly CEO g Kf. n i l u s is Con K M
Inroducion Workd in Mobil for 10 yrs Plform dvlopmn (Simns, Android) App dvlopmn Android, ios, BB 10, BB Clssic, J2ME, Symbin Srd MKis Consuling in 2007 Cross-plform Mobil Apps sinc 2008 Migrn spin-off crd in 2013 Ohr Tchnologis Embddd Linux (C / C++ / ARM / MIPS) Jv EE (Spring, Ply) Full Disclosur 2
Th Muliplform Chllng I nd n pp for... L's cr h sm pp 4 ims! Or hink Muliplform? 3
Anomy of Mobil App UI UI UI UI Businss Logic Businss Logic Businss Logic Businss Logic Android ios Windows BlckBrry 10?! y l s u o i r S 4
Cv: App Bhvior Clins look for idnicl App bhvior cross plforms: Th sm d should b displyd Oprions should do xcly h sm hing Lo of room for inrprion ffo r x is s r o i v h b p p Syncing r 5
Anomy of n idl Muliplform Mobil App UI Common Cod Runim Runim Runim Runim Android ios Windows BlckBrry 10 : s i m o r P r h w y An n u R nc O i r W 6
Cv: Usr Exprinc Usrs look for fmilir UX Apps r jus xnsions of h Plform's UX Quo from Indx.hu: Th BKV Fuár App on Android nd ios looks h sm. And his is misk. Spr rm o f l p ch r o f ign s D X U 7
Anomy of rl Muliplform Mobil App UI UI UI Common Cod UI! r h s g Svin Pl. Spc. Cod Pl. Spc. Cod Pl. Spc. Cod Pl. Spc. Cod Runim Runim Runim Runim Android ios Windows BlckBrry 10 8
Compring Approchs Jv Suppord Plforms Tools C# JvScrip C / C++ Objciv-C Lngugs? Ecosysm 9
App Typs Hybrid Apps Us h WbViw of h undrlying plform UI simuls niv conrols in HTML / CSS Applicion cod dvlopd in JvScrip Limid ccss o niv plform furs Niv Apps My us ddiionl runims (.g. VMs) Uss h niv UI nd APIs My us lrniv lngugs My provid plformindpndn API 10
Hybrid Apps 11
Niv Pckging for Hybrid Apps Apch Cordov / PhonGp Th olds, mos mur soluion Suppord by ll frmworks Lods of plugins Snch Cmd Spcificlly dsignd for Snch Touch Triggr.io 12
Hybrid App Frmworks Snch Touch Mur OO frmwork Dvic gnosic min hm + cusom spcific hms Absrcs common UI nd Dvic APIs JQury Mobil Th mobil xnsion of JQury Works lso on h dskop Rquirs n xrnl MV* Frmwork lik Bckbon Ionic Buil on AngulrJS (wih opions opn for ohr frmworks) Widgs providd s cusom HTML lmns 13
Niv Apps 14
J2ObjC by Sourc Trnslors Trnsl Jv sourc cod o Objciv-C Trnsls DEX bycod o Objciv-C, C# c. sourc No VM (.g. no grbg collcion), rnsld cod runs in h Objciv-C runim No VM (.g. no grbg collcion), rnsld cod runs in h Objciv-C runim UI cod is wrin in Objciv-C ios Dvlopmn in Xcod wih sndrd ools No dbugging suppor No IDE suppor Hnd wrin pril Jv bindings for ios API 15
Appclror Tinium JvScrip bsd API No WbViw bsd vr mylbl = Ti.UI.crLbl({ x : 'Hllo World', op : 250 }); Niv UI componns Alloy MVC Frmwork Common UI Conrols Wih plform spcific nhncmns Eclips bsd IDE Suppord plforms ios, Android, BlckBrry, Windows Phon 16
Codnm On Wri Onc Run Anywhr Concp Common, Swing-lik API Dvlopmn on Jv Simulor Dbugging only on hos, no on rg dvics Mulipl rgs Android: Implmnion of h CodOn API IOS: XMLVM bsd rnslor, nw VM is in dvlopmn Windows: Jv cod rnsld o C# UI Dsignr for Codnm On API Cloud bsd builds Som suppor for ddiionl lngugs,.g. Scl or Mirh My suppor ny siclly compild JVM lngug 17
Xmrin Dvlop pps in C# for mulipl plforms Uss h Mono Runim Ahd of im compilion UI dvlopd sprly for ch plform Android, ios, Mc UI Dsignr vilbl Cross plform librris Xmrin.Forms Xmrin.Mobil IDE suppor: Xmrin Sudio, Visul Sudio 18
RoboVM Cusom VM implmnion Pril ios API bindings Jv bycod rnsld o niv cod hd of im Suppors JNI nd Bro (cusom niv binding frmwork) Bsic IDE suppor (.g. lunch on dvic / ios Simulor from Eclips) No dbugging suppor Suppors Jv Any siclly compild JVM lngug is possibl 19
Migrn Bsd on Android ART Runim Full Eclips IDE Suppor Lunching, Dbugging, Migrn spcific Cod-Assis Eclips & Xcod ingrd Sorybords, Inrfc Buildr Hybrid Clsss N/J Niv Bindings wih Auomd Gnror Th full ios8 API is gnrd Gnror includd in Eclips us in your own projcs Suppors Jv nd Scl Now Avilbl ny lngug suppord on ART is possibl 20
Migrn Dmo om c. n r ig m. w w hp://w 21
Convrgnc of Runims Unmngd Runim (C, C++) Asm.js AOT Compilr JvScrip (Dynmic) VM Wb Runim Typ Infrnc Sic VM (JVM, CLR) Invokdynmic is r h W f i w S d n C v i Objc? 22
Qusions & Answrs J2ObjC by Kis Grgly CEO g Kf. n i l u s is Con K M is.com k [ gk@ ] m 23