Synetech

Specifika vývoje aplikací pro iOS a Android. Jste tým jablíčkářů nebo Android stoupenců?

V předchozím článku jsme si řekli základní fakta o operačních systémech iOS a Android. Dnes se podíváme, jak u nás probíhá vývoj aplikací na jednotlivých platformách. V Synetechu vyvíjíme aplikace pro iOs i Android a naše týmy mezi sebou vedou nelehký boj za pravdu své platformy. Jak se garantům vývoje z našeho týmu s těmito systémy pracuje? Co jim vyhovuje a co by si třeba chtěli vypůjčit od konkurence? Přečtěte si rozhovor s Jirkou „Speedy“ Rychlovským (Android) a Vojtou Pajerem (iOS).

Odvěký souboj fanoušků iOS vs Android

Je to jako Brno a Praha: dva tábory, které vedou odvěký boj. Ať už v kapse nosíte iPhone, nebo se naopak vyhýbáte všem zařízením z dílny Steva Jobse, asi jste už někdy výběr svého telefonu před stoupenci opačného tábora museli obhajovat. U nás tomu není jinak.

Co můžete slyšet na našich chodbách nebo číst v konverzacích na Slacku?

“Androidu se dá věřit tak, že hned po tom, co v internetovém bankovnictví udělám nějakou nutnou operaci, tak ho radši zas smažu.” 😊

“Nevíte, kdy vyjde verze iPhonu s usb-c, 120+ Hz obrazovkou nebo čtečkou otisků v displeji? Nebo alespoň s normální cenou?”

“I uživatelé iOS mají radši Google Mapy…”

”… To jen tady stojí Apple mapy za prd, v USA jsou daleko lepší.” 😊

“Tak Android možná inovuje, akorát Android 11 máš tak na Google Pixel devicech a ty má asi 0.1 % uživatelů.”

“Google Asistent na rozdíl od Siri neusíná…” 😊

”… Siri narozdíl od Googlu neposílá všechny data zpátky do Applu.”

“Já se z těchto debat distancuju. Přijde mi, že dělat si srandu z Androidu je stejné jako házet kameny na malé bezbranné dítě.” 😊

Podobné neshody panují i při vývoji aplikací pro iOS a Android. Na ně jsme se zeptali právě Jirky a Vojty.

V jakém jazyce vaše týmy programují a jaké technologie ovládají?

Jirka (Android): Naším programovacím jazykem je Kotlin, který se stal oficiálním jazykem pro vývoj aplikací pro Android. Pracujeme v Android Studiu, což je vývojářské prostředí, které nahradilo prvotní, značně nedotažený a často chybový Eclipse. Je postavené na IntelliJ od Jetbrains, což jsou za mě jedny z nejlepších IDE na trhu.

Vojta (iOS): Oficiální programovací jazyk pro vývoj iOS aplikací je Swift, který je operačnímu systému ušitý přímo na míru. Některé starší aplikace ještě využívají Objective-C, ale v tom už se téměř nepracuje. Naším vývojářským prostředím je XCode, které si společnost Apple na tvorbu aplikací sama vytváří.

Čím je každá platforma jedinečná a co vás na ní baví?

Jirka (Android): Baví mě, jak je ta platforma variabilní, musíš ošetřovat spoustu věcí a nikdy nevíš, co se na tom konkrétním “devicu” stane. Taky je fajn, že můžeš vyrobit vlastně cokoliv a vždycky nějak obejít defaultní nařízení a pravidla. Náš systém je více benevolentní. I design aplikací se mi líbí víc, iOS je moc minimalistický. Android je pro mě intuitivnější.

Vojta (iOS): Mně se na vývoji iOS aplikací líbí právě ten minimalistický design. Je to “smooth”. Všechno není povolené, tak trochu tě “vedou za ručičku”, ale ne v tom špatném slova smyslu. Udávají směr, kterého se vývojáři můžou držet. A Swift jako jazyk je úplně parádní!

Existuje něco, co byste si vypůjčili od druhé platformy?

Jirka (Android): Možná právě tu iOSí jednoduchost. Je to vlastně protiklad volnosti, kterou Android umožňuje. Každý výrobce si zde totiž může dělat, co chce. Musíš se přizpůsobovat spoustě různých zařízení a displejů. Kdežto iOS to má jasně nalinkované - přesně víš, jaká má zařízení a s jakým displejem. A v tom je to jednodušší. Úskalím Androidu je i podpora spousty verzí operačního systému. iOS je v tomto jednodušší, naše aplikace tam mají až 80 % uživatelů na nejnovějším OS už měsíc po jeho vydání.

Vojta (iOS): Na Androidu je skvělá ta možnost modularizace kódu. Z hlediska přehlednosti, “reusovatelnosti” a asi i rychlosti to je hrozně fajn. Jde to plus mínus simulovat na iOSu, ale není to úplně ono.

Synetech tym_specifika ios a android platforem

V čem jsou vývojáři na vaší platformě silní?

Jirka (Android): Asi můžu říct za obě platformy, že naší přidanou hodnotou je reaktivní vývoj. To znamená, že vše děláme asynchronně. Nečekáme, až se něco stane, protože se to v pohodě děje někde na pozadí a neblokuje nás to. Také používáme multimodulární architekturu, která je doporučovaná Googlem a jsme v ní dobří. Většinou totiž něco prokopneme ještě dřív, než to Google připraví. Aplikujeme při vývoji aplikací ty nejnovější věci.

Vojta (iOS): My nevyužíváme multimodulární architekturu, ale děláme v podstatě MVVM (Model-View-View-Model), který jsme si trochu upravili, aby nám vyhovoval. Jsme tak schopní odhadovat tasky v rámci hodin s velmi dobrou přesností, což si klienti chválí. Také máme docela velké know-how v rozšířené realitě a hodně se nám zalíbily i nově přidané Swift Package. Na projektech díky nim zachycujeme opakující se vzory, které extrahujeme do našich interních packagů. Ty nám pak zjednodušují vývoj v dalších projektech.

Vývoj aplikací pro iOS nebo Android… hlavně, že nás to baví

Důvodů, proč je jeden systém lepší nebo horší, by se na obou stranách našlo určitě mnohem více. Důležitější je ale pro nás to, že se na obou platformách můžeme neustále rozvíjet a zdokonalovat.

Ale co si budeme povídat, toho hašteření mezi platformami se jen tak nevzdáme :) Je to folklor, který nás vlastně baví. A co vy, máte nějaké zaručené důvody nebo “hlášky”, díky nimž je jasné, že jsou vaše preference operačního systému opodstatněné? Napište nám je!

Chtěli byste v SYNETECHu posílit naše řady a kopat za jeden z týmů? Ozvěte se, vždy rádi uvítáme nové posily na obou stranách barikády.

Máte zájem o vývoj aplikace pro Android, iOs nebo obojí? Kontaktujte nás, rádi se o tom také pobavíme.

Kdo jsou naši platformní garanti Jirka a Vojta? Čemu se v SYNETECHu věnují a co mají za sebou?

Vyvoj android aplikaci-Jiri Rychlovsky Vyvoj iOS aplikaci-Vojtech Pajer