loading...

Jiří Hýsek

nájemný programátor
 

Blogu většinou o programování mobilních aplikací - pro iOS v Rubymotion, multiplatformních mobilních her Corona SDK a webových aplikací v Ruby on Rails.

Aplikace pro Android → RubyMotion pro iOS + Android.

Courseamotion
Před pár týdny mě na coursera.org zaujal předmět “Programming Mobile Applications for Android Handheld Systems”
 
I když se v přímo v Javě pro Android programovat v nejbližší době nechystám (i když člověk nikdy neví), myslím, že je dobré se to naučit, pomůže to líp rozumět jiným technologiím pro tvorbu mobilních aplikací. Konkrétně pracuji s RubyMotion. Donedávna bylo určeno pouze pro vývoj aplikací pro iOS a OSX,  ale protože teď přidali podporu Androidu, tak si kurz trochu zpestřuji - příklady ze zmíněného kurzu se snažím přepisovat do RubyMotion. A nejen variantu pro Android, ale i obdobnou aplikaci pro iOS.
 
Zajímá mě, jestli a o kolik bude práce v RubyMotion snadnější a jak se bude iOS a Android verze lišit, jak velké množství kódu bude multiplatformní a podobně. Na dnešním prvním příkladu to ještě asi moc vidět nepůjde, ale aspoň si to na něm všechno zprovozním a otestuju.
 
Myslím, že by to mohlo zajímat víc lidí, proto budu dávat výsledky na github.
 
Week 1:  TheAnswer
V prvním týdnu se moc neprogramovalo, spíš šlo o seznámení s prostředím, takže aplikace je úplně jednoduchá. Po spuštění jen zobrazí text “The answer to life, the universe and everything is: 42”, přičemž to 42 se nějakým způsobem vybere z pole možností (aby ukázali debugger, tak záměrně takhle zamotali). Já to zkusím přepsat stejným způsobem.
 
RubyMotion kompiluje přímo do nativního kódu, spolupracuje s nativními knihovnami, takže je možné v něm využívat totéž, co při vývoji v Objective C pro iOS nebo v Javě pro Android. Kód se dá docela přímočaře přepsat a je možné využívat např. standardní nástroje pro vizuální návrh vzhledu a RubyMotion s tím bez problémů spolupracuje. Není to samozřejmě nutné, ale protože v příkladě layout načítali z xml layoutu tvořeného v Eclipse, využiji ho i v RubyMotion a pro iOS “naklikám” layout v Xcode. I když je to kvůli jedinému labelu zbytečné, ale je to jen příklad.
 
Zdrojové kódy najdete zde: https://github.com/jhysek/CourseraAndroidWeek1
 
Stěžejní je soubor TheAnswer.java. Odpovídající soubory v RubyMotion jsou main_activity.rb (Android verze) a main_controller.rb (iOS verze). Podívejte, porovnejte, vyzkoušejte. Jak jsem čekal, nic moc v tom zatím vidět není, až se bude dělat něco, na co půjde využít existující gem pro RubyMotion, tak to bude zajímavější. Ale cíl to zatím splnilo - rozjel jsem si podporu Androidu v RubyMotion, udělal a otestoval jednoduchou aplikaci..
 
Zatím to bylo snadné, ale RubyMotion pro Android je zatím jen v beta verzi a je k tomu minimum dokumentace, tak to asi u dalších úkolů bude větší výzva... 
Zpět na seznam článků