CHICIO CODING

Android Studio vs Xcode vs AppCode: en kort sammenligning af kodehastighed

16 Jan 2018 – 4 min read

I dette indlæg vil jeg sammenligne den kodehastighed, som det er muligt at opnå med Android Studio, Xcode og nogle JetBrains IDE’er med hensyn til kodning af kode og refaktorering.

IDE, Integrated Development Environment, er softwareudviklerens værktøjskasser. Da jeg begyndte at arbejde i lastminute.com-gruppen, var min viden om Android-platformen meget begrænset. Men … lastminute.com group er en agil softwareudviklingsvirksomhed, og en af de teknikker, vi bruger i vores udviklingsworkflow, er parprogrammering: to udviklere arbejder på den samme funktion på den samme arbejdsstation. som rapporteret på Wikipedia er en af de vigtigste fordele ved parprogrammering videndeling:

Viden deles konstant mellem parprogrammører, uanset om det er i branchen eller i et klasseværelse, mange kilder tyder på, at studerende viser større selvtillid, når de programmerer i par, og mange lærer, uanset om det er fra tips om regler for programmeringssprog til generelle designfærdigheder. I “promiscuous pairing” kommunikerer og arbejder hver programmør med alle de andre programmører på holdet i stedet for kun at parre sig med én partner, hvilket får viden om systemet til at sprede sig til hele holdet. Parprogrammering giver programmørerne mulighed for at undersøge deres partners kode og give feedback, hvilket er nødvendigt for at øge deres egen evne til at udvikle overvågningsmekanismer for deres egne læringsaktiviteter.

Det er derfor, at jeg begyndte at arbejde sammen med min kollega Francesco Bonfadelli, en senior Android-, iOS- og backend-udvikler. Under vores parprogrammeringssessioner lærte jeg en masse om udvikling af mobilapps til Android-platformen. En af de ting, jeg lærte i løbet af de første par dage, er forskellen mellem de officielle IDE’er: Android Studio og Xcode. Efter at have set den kodehastighed, som Francesco var i stand til at opnå under en Android-kodesession, og hvor meget langsommere det er at gøre de samme ting i Xcode til iOS, gik det op for mig, hvor meget mere avanceret Android Studio er med sit sæt af refaktoriseringsfunktioner i forhold til Xcode.
I dette indlæg vil jeg kort analysere nogle IDE’er, der almindeligvis bruges til udvikling af mobilapplikationer, med fokus på den kodehastighed, der er mulig at opnå ved at bruge dem, og jeg vil forklare dig, hvorfor jeg i skrivende stund er begyndt at foretrække JetBrains IDE-familie (ikke kun til udvikling af mobilapplikationer :bowtie:).

Xcode

Jeg har altid elsket Xcode. Jeg begyndte at bruge det for 8 år siden, og det er stadig her med mig under mit daglige arbejde. Det åbnes på få sekunder, og du kan begynde at kode meget hurtigt. Men…. hvad sker der, når din app-kode begynder at stige i kompleksitet, og du har brug for at foretage en simpel refaktorisering? Hjælper det dig på en eller anden måde, når det skal oprette en ny klasse/egenskab? Hjælper det dig, når du skal navigere i din kode, og du har brug for at springe hurtigt fra en klasse til en anden? Tja, for at være ærlig hjælper det dig ikke så meget. Selv en simpel omdøbning kan blive en smertefuld operation, især hvis du har et projekt med blandede Swift/Objective-C dele. Alt skal gøres manuelt. Overvej f.eks. denne liste over blandede kodeoprettelses-/refactoringoperationer:

  • Opret en ny klasse
  • instantiér den og behold den som en lokal variabel
  • tilføj en metode til den tidligere klasse
  • tilføj en parameter til den tidligere oprettede metode
  • udtræk den lokale variabel som en egenskab for controller, hvori jeg oprettede den

I den følgende video vil jeg forsøge at udføre disse operationer i Xcode. I skrivende stund er den tilgængelige Xcode-version 9.2.

Mere end 2 minutter til at implementere alle de ting i ovenstående liste.Virkelig langsomt, er det ikke?!???? :frygtsom:

Android Studio

For lastminute.com-gruppen havde jeg kun brugt Android Studio et par gange til nogle meget enkle Android-apps. Så begyndte jeg at arbejde sammen med Francesco, og han introducerede mig til JetBrains IDE’s kraft. Dette IDE giver dig mulighed for at navigere hurtigt i din kildekode, oprette og ændre klasser og giver dig mulighed for at udføre en masse andre refaktoriseringsoperationer uden at forlade tastaturet! Dybest set kan du skrive kode og glemme alt om din mus!!! :open_mouth:. Listen over tastaturgenveje, som du kan bruge i dit udviklingsflow, er uendelig. Du kan finde den komplette liste her. Lad os prøve at udføre præcis de samme operationer, som jeg gjorde før med Xcode, og jeg tilføjer også en omdøbning af den oprettede klasse i slutningen af alle de tidligere operationer. I skrivende stund er den tilgængelige Android Studio-version 3.0.1.

Det tog kun 50 sekunder, og jeg gjorde alle de ting (og jeg trykkede ikke hårdt på tastaturet…:stuck_out_tongue_winking_eye:) Som du kan se, giver Android Studio dig mulighed for at skrive kode med lysets hastighed!!!! :flushed:.

AppCode

Som du kan se, begyndte jeg, efter at have arbejdet et par timer med Android Studio, at spekulere på, om der findes et IDE, der lader mig opsætte den samme skrivekodestil og arbejdsgang. Her viste en anden kollega, som jeg arbejdede sammen med, Tommaso Resti, en senior iOS- og Android-udvikler, mig AppCode for første gang. Dette er et andet IDE fra JetBrains til iOS-udvikling. Det giver dig mulighed for at forbedre din udviklingshastighed ved at give dig mulighed for at bruge nogle af de refaktoriseringsværktøjer, som du kan finde i Android Studio. Det er dog ikke alt fred og lys i dette tilfælde. Nogle af refaktoriseringsværktøjerne er ikke tilgængelige for Swift, og du skal stadig bruge Xcode for at arbejde med Xib og Storyboard (JetBrains-teamet udviklede et plugin til interface builder, men det er blevet indstillet). Uanset hvad, hvis du begynder at vænne dig til arbejdsgangen med Android Studio til at skrive kode, vil du føle dig hjemme med AppCode :afslappet:.

Sluttanker

Android Studio og AppCode er baseret på IntelliJ IDEA, den berømte Java IDE fra JetBrains. Men det er kun halvdelen af historien: JetBrains IDE-familie er virkelig stor. Du kan finde en IDE til hvert af dine yndlingssprog:

  • CLion, til C og C++
  • PhpStorm
  • PyCharm
  • RubyMine til Ruby
  • GoLand til GO
  • Rider til C#

Så du skal ikke være bekymret: Hvis du vil begynde at forbedre din kodehastighed, findes der sikkert en IDE til dit yndlingssprog. Xcode vil altid have en særlig plads i mit hjerte. Jeg vil stadig fortsætte med at bruge det i mit daglige arbejde som mobiludvikler. Men … den kodningshastighed, jeg opnåede med JetBrains IDE’er, kunne ikke ignoreres :smiling_imp:. Derfor er jeg begyndt at foretrække dem :heart:.