CHICIO CODING

Android Studio vs Xcode vs AppCode: stručné srovnání rychlosti kódování

16. 1. 2018 – 4 min čtení

V tomto příspěvku porovnám rychlost kódování, které je možné dosáhnout pomocí Android Studia, Xcode a některých IDE JetBrains z hlediska tvorby a refaktoringu kódu.

IDE, Integrated Development Environment, jsou sady nástrojů pro vývojáře softwaru. Když jsem začal pracovat ve skupině lastminute.com, byly mé znalosti platformy Android velmi omezené. Ale… skupina lastminute.com je agilní společnost zabývající se vývojem softwaru a jednou z technik, které používáme při našem pracovním postupu vývoje, je párové programování: dva vývojáři pracují na stejné funkci na stejné pracovní stanici. jak uvádí Wikipedie, jednou z hlavních výhod párového programování je sdílení znalostí:

Znalosti jsou mezi programátory v páru neustále sdíleny, ať už v oboru, nebo ve třídě, mnoho zdrojů naznačuje, že studenti vykazují vyšší důvěru, když programují ve dvojicích, a mnozí se učí, ať už jde o tipy týkající se pravidel programovacího jazyka, nebo o celkové dovednosti v oblasti návrhu. Při „promiskuitním párování“ každý programátor komunikuje a pracuje se všemi ostatními programátory v týmu namísto párování pouze s jedním partnerem, což způsobuje šíření znalostí o systému v celém týmu. Párové programování umožňuje programátorům zkoumat kód svého partnera a poskytovat mu zpětnou vazbu, která je nezbytná pro zvýšení jejich vlastní schopnosti vyvíjet monitorovací mechanismy pro vlastní vzdělávací aktivity.

Proto jsem začal spolupracovat se svým kolegou Francescem Bonfadellim, seniorním vývojářem pro Android, iOS a Backend. Během našeho párového programování jsem se naučil hodně o vývoji mobilních aplikací pro platformu Android. Jednou z věcí, kterou jsem se během prvních dnů naučil, je rozdíl mezi oficiálními IDE: Android Studio a Xcode. Poté, co jsem viděl rychlost kódování, které byl Francesco schopen dosáhnout během kódovací relace pro Android, a o kolik pomalejší je dělat stejné věci v Xcode pro iOS, jsem si uvědomil, o kolik je Android Studio se svou sadou refaktorizačních funkcí ve srovnání s Xcode pokročilejší.
V tomto příspěvku stručně rozeberu některá IDE běžně používaná pro vývoj mobilních aplikací se zaměřením na rychlost kódování, které je možné jejich použitím dosáhnout, a vysvětlím vám, proč jsem v době psaní tohoto článku začal preferovat rodinu IDE JetBrains (nejen pro vývoj mobilních aplikací :bowtie:).

Xcode

Vždy jsem měl Xcode rád. Začal jsem ho používat před 8 lety a stále je tu se mnou při mé každodenní práci. Otevře se během několika sekund a můžete začít kódovat velmi rychle. Ale…. co se stane, když kód vaší aplikace začne narůstat z hlediska složitosti a vy potřebujete provést jednoduchou refaktorizační operaci? Pomůže vám to nějak, když je třeba vytvořit novou třídu/vlastnost? Pomůže vám to, když se potřebujete orientovat v kódu a potřebujete rychle přejít z jedné třídy do druhé? No, upřímně řečeno, moc vám to nepomůže. I jednoduché přejmenování se může stát bolestivou operací, zejména pokud máte projekt se smíšenými částmi Swift/Objective-C. Vše je nutné provést ručně. Vezměte si například tento seznam operací vytváření/refaktorizace smíšeného kódu:

  • vytvořit novou třídu
  • instatovat ji a ponechat ji jako lokální proměnnou
  • přidat metodu do předchozí třídy
  • přidat parametr do dříve vytvořené metody
  • vyjmout lokální proměnnou jako vlastnost kontroléru, ve kterém jsem ji vytvořil

V následujícím videu se pokusím tyto operace provést v Xcode. V době psaní tohoto článku je dostupná verze Xcode 9.2.

Na implementaci všech věcí ve výše uvedeném seznamu potřebuji více než 2 minuty. opravdu pomalé, že?!?!? :fearful:

Android Studio

Před skupinou lastminute.com jsem Android Studio použil jen několikrát pro několik velmi jednoduchých aplikací pro Android. Pak jsem začal spolupracovat s Francescem a ten mě seznámil se silou IDE JetBrains. Toto IDE vám dává možnost rychle se pohybovat ve zdrojovém kódu, vytvářet a upravovat třídy a umožňuje provádět spoustu dalších refaktorizačních operací, aniž byste opustili klávesnici! V podstatě můžete psát kód a zapomenout na myš!!! :open_mouth:. Seznam klávesových zkratek, které můžete používat v průběhu vývoje, je nekonečný. Kompletní seznam najdete zde. Zkusíme provést úplně stejné operace, které jsem předtím provedl s Xcode, a na konec všech předchozích operací přidám ještě přejmenování vytvořené třídy. V době psaní tohoto článku je dostupná verze Android Studia 3.0.1.

Jen 50 sekund a všechny věci jsem udělal (a to jsem netlačil moc na klávesnici…:stuck_out_tongue_winking_eye:). jak vidíte, Android Studio vám dává možnost psát kód rychlostí světla!!!! :flushed:.

AppCode

Jak si můžete představit, po několika hodinách práce s Android Studiem jsem začal přemýšlet, zda existuje IDE, které mi umožní nastavit stejný styl psaní kódu a pracovní postup. Zde mi další kolega, se kterým jsem pracoval, Tommaso Resti, seniorní vývojář pro iOS a Android, poprvé ukázal AppCode. Jedná se o další IDE od společnosti JetBrains pro vývoj v systému iOS. Umožňuje zvýšit rychlost vývoje tím, že umožňuje používat některé refaktorizační nástroje, které najdete v Android Studiu. V tomto případě však není vše v klidu a pohodě. Některé refaktorizační nástroje nejsou pro Swift k dispozici a pro práci s Xib a Storyboardem budete stále potřebovat Xcode (tým JetBrains vyvinul zásuvný modul pro nástroj pro tvorbu rozhraní, který však byl zrušen). Každopádně pokud si začnete zvykat na pracovní postup psaní kódu v Android Studiu, budete se v AppCode cítit jako doma :relaxed:.

Závěrečné myšlenky

Android Studio a AppCode jsou založeny na IntelliJ IDEA, slavném vývojovém prostředí Java IDE od společnosti JetBrains. Ale to je jen polovina příběhu: Rodina IDE JetBrains je opravdu velká. Pro každý svůj oblíbený jazyk najdete IDE:

  • CLion, pro C a C++
  • PhpStorm
  • PyCharm
  • RubyMine pro Ruby
  • GoLand pro GO
  • Rider pro C#

Takže žádné obavy: Pokud chcete začít zlepšovat rychlost kódování, pravděpodobně existuje IDE pro váš oblíbený jazyk. Xcode bude mít v mém srdci vždy zvláštní místo. I nadále ho budu používat při své každodenní práci mobilního vývojáře. Ale… rychlost kódování, kterou jsem získal s IDE JetBrains, se nedala ignorovat :smiling_imp:. Proto jsem jim začal dávat přednost :heart:.

.