Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. iOS
Code

iOS és Swift kezdőknek: az iOS ökoszisztéma megértése

by
Difficulty:BeginnerLength:MediumLanguages:
This post is part of a series called iOS From Scratch With Swift.
iOS From Scratch With Swift: Setting Up the Development Environment

Hungarian (Magyar) translation by Andras Czegledi (you can also view the original English article)

Mielőtt elkezdenél iOS applikációkat fejleszteni, nagyon fontos hogy megértsd az ökoszisztéma működését Ez a cikk bemutatja az Apple operációs rendszerének alapjait, a jelenlegi hardvereszközöket és az Apple App Store-t.

1. Miért pont iOS?

Az Android és a Windows Phone érkezése előtt az Apple csak a Nokiával és a BlackBerryvel osztozott a mobilpiacon. Az új mobilplatformok megjelenésével egyre fontosabbá vált eldönteni, hogy melyik platform a legmegfelelőbb számodra.

Annak ellenére hogy az Apple operációs rendszere 2007-ben indult, az Androidnak nagyobb a piaci részesedése az iOS-nél. Mit jelent ez az iOS számára? Megéri fejleszteni erre a platformra? Nagyon is. Számos remek indok van arra, hogy miért kezdd el az iOS fejlesztést még ma.

  • Pénzügyi ösztönzés: Az emberek több pénzt költenek az Apple App Store-jában mint bármelyik más mobilplatformon. Annak ellenére, hogy az Android a domináns játékos a mobilplatformok között, az iOS jövedelmezőbb a fejlesztők számára.
  • Zárt rendszer: Az évek alatt az Apple App Store nagyon sok kritikát kapott a fejlesztőktől és a felhasználóktól, különösen az Apple ellenőrzési eljárása. Az azonban világosan látszik, hogy az Apple irányelvei egy olyan App Store-t eredményeztek, ahol az applikációk sokkal jobb minőségűek, mint bármelyik más alkalmazásboltban. Ezen kívül a felhasználók nagyobb biztonságban érzik magukat amikor az App Store-ban vásárolnak mint amikor más - nyitottabb - platformon teszik azt, például a Google Play-en.
  • Közösség és Támogatás: Az iOS fejlesztői közösségbe remek érzés tartozni. Szinte végtelen mennyiségű cikk, tutorial és dokumentáció áll rendelkezésre amennyiben elakadsz egy problémával. Ezen kívül az Apple iOS SDK dokumentációja kiváló, nem is beszélve az Apple fejlesztői weboldalán elérhető több száz WWDC (World Wide Developer Conference) videóról.

Az emberek sokszor megfeledkeznek arról (vagy nem is tudják), hogy az Android és az iOS nagyon különböző platformok. Bár mindkét platformot mobiltelefonokra tervezték, az iOS ökoszisztéma sokban különbözik az Android ökoszisztémától.

Fejlesztői szemszögből nézve sok ember szerint könnyebb iOS-re fejleszteni mint Androidra. Ne érts félre, nem az elérhető technológiákra, vagy programokra gondolok amik mindkét platformra elérhetőek. Az iOS és Android közötti különbség két okra vezethető vissza: fragmentáció és telepítési arány.

Fragmentáció

Az Android egyik fő erőssége egyben az egyik legnagyobb gyengesége is. Ahogyan azt bizonyára tudod, az Android operációs rendszer egy nyílt forráskódú projekt, tehát bárki által használható és módosítható. Számos hardvergyártó látta meg a lehetőséget az Androidban, főleg mivel a Google támogatja.

Ennek köszönhetően az Android gyorsan népszerűvé vált. A probléma az, hogy mindegyik hardvergyártó a saját igényei szerint módosítja az Androidot, így számos különböző verzió látott napvilágot az Android megjelenése óta.

Bár az Android piaci részesedése nagyon csábítónak tűnik, nagyon körülményes olyan szoftvert készíteni, ami minden jelenleg elérhető Android verzión fut. A többezernyi különböző Androidot futtató eszköz miatt a hardveres szoftvertesztelés egyáltalán nem egyszerű feladat. Könnyű belátni, hogy a támogatás és a kompatibilitás biztosítása nagyon bonyolult.

Telepítési arány

A vezetéknélküli eszközök piacát a mobilszolgáltatók számos országban erősen kontrollálják. Az Apple a kezdetektől fogva tudta hogy a legjobb felhasználói élmény biztosítása érdekében meg kell tartania a kontrollt a mobiltelefonjai felett. Ennek eredménye, hogy a felhasználók már aznap frissíthetik iOS eszközeiket a legújabb iOS verzióra, amikor az megjelenik. Ez egy jelentős előny az iOS platformon, az eredménye pedig sokatmondó. Kevesebb mint egy héttel az iOS 9 megjelenése után az iOS eszközök már több mint 50%-a frissítve lett a legújabb verzióra.

Hasonlítsuk ezt össze az Androiddal. 2015 szeptemberében az Android felhasználóknak csak 20%-a frissítette eszközét Lollipopra (ami 2014-ben jelent meg), és kevesebb mint 40% frissített KitKat-ra (ami 2013-ban jelent meg).

Ezeket a számokat nem azért hozom fel hogy leszóljam az Android platformot, vagy bármelyik más mobilplatformot. A célom az, hogy kihangsúlyozzam mennyire erős hatása van a telepítési aránynak az ökoszisztémákra ezeken a platformokon.

Minél lassabban telepítik a felhasználók egy operációs rendszer új verzióját, annál tovább kénytelenek a fejlesztők az operációs rendszer régebbi verzióit támogatni. Ezzel együtt a fejlesztők számára az új technológiák használata sem olyan vonzó, mivel azokat csak az Android felhasználók töredéke tudja kihasználni.

2. Miért natívan?

Ha gyakran olvasod az Envato Tuts+-t, akkor bizonyára ismersz néhány cross platform framework-öt, például Xamarin, React Native, PhoneGap, Apache Cordova vagy Titanium Mobile. Valószínűleg azon gondolkozol, hogy miért kellene megtanulnod a Swiftet vagy az Objective C-t, amikor C#-al vagy JavaScripttel is fejleszthetsz iOS appokat. Hadd mutassam be röviden hogy milyen lehetőségeid vannak, ha iOS applikáció fejlesztésre adod a fejed.

Webalkalmazások

A webalkalmazás volt az első, és a natív iOS SDK 2008-as bevezetéséig az egyetlen opció a fejlesztésre. A webalkalmazás előnye hogy nem kell az App Store-ral és az Apple ellenőrzési eljárásával foglalkozni. Hogy miért? A webalkalmazás csak egy komplikált elnevezés egy olyan weboldalra, ami úgy viselkedik, mint egy applikáció. Csak egy böngészőre van szükséged, mint például a Safari vagy a Google Chrome.

A webalkalmazásoknak van néhány egyértelmű előnyük. Alapból cross-platformok, hiszen az alkalmazások a böngészőben futnak. Egy másik előny a webalkalmazások készítésének tanulási görbéje. Hogyha van tapasztalatod webfejlesztésben, akkor nagyon rövid idő alatt működő alkalmazást készíthetsz.

Természetesen nem mehetünk el szó nélkül a hátrányok mellett sem. Egy webalkalmazás nem tudja teljes mértékben kihasználni a mobileszköz erőforrásait. A mobilos webalkalmazások elég sokat tudnak, köszönhetően a HTML5-nek és a JavaScriptnek. De a limitációk erősen behatárolják a képességeiket. Nem tudod majd az iPad és iPhone menő képességeit kihasználni. Ezen kívül a legtöbb webalkalmazásnak internetkapcsolatra van szüksége, bár vannak kivételek.

Talán a legnagyobb hátrány hogy általánosságban lassabbnak érződnek mint a natív alkalmazások. A webalkalmazások reszponzivitása évről évre javul, de a böngésző miatti akadozást nem lehet figyelmen kívül hagyni. Az élmény más. Ezzel nem lehet vitatkozni.

Mobil Cross-Platform Keretrendszerek

A cross-platform framework előnye, hogy a fejlesztő olyan alkalmazást írhat, ami több különböző eszközre ugyanabból a kódbázisból telepíthető. Ezt különböző módokon lehet elérni.

Néhány Framework, mint a PhoneGap és az Apache Cordova a platform natív SDK-jával készít egy web view-t amibe az alkalmazás be van ágyazva. Mint ahogy a webalkalmazásoknál, ennek is megvannak a limitációi a funkciók tekintetében. A legfőbb előny hogy felhasználói élmény szempontjából natív alkalmazásnak érződik, illetve hogy a platform saját store-ján keresztül elérhető.

Bár a mobil fejlesztői framework-ök a mobil fejlesztés Szent Gráljának tűnnek, néhány negatívumot figyelembe kell venni. A legfontosabb hátrány hogy az alkalmazás egy third party framework-től függ. Más szóval a projekt kódbázisa attól a cégtől függ ami a cross-platform megoldást szolgáltatja. Ha ez a cég csődbe megy vagy lassan implementálja a natív SDK változásait, előfordulhat hogy mindent elölről kell kezdened. Ezzel a kockázattal számolnod kell ha ezt a megoldást használod.

iOS SDK

A natív SDK-val való fejlesztés a legjobb választás ha olyan alkalmazásokat akarsz készíteni, amelyek kitűnnek a tömegből illetve kihasználják az eszköz képességeit. Ezen kívül egy stabil fejlesztői környezettel dolgozhatsz és használhatod az Apple által nyújtott eszközöket és támogatást.

3. iOS ökoszisztéma

Az iOS ökoszisztéma egyik legvonzóbb aspektusa az egyszerűsége. Az iOS-t futtató eszközök listája meglepően rövid az Androidhoz és Windows Phone-hoz képest. Ez azt jelenti, hogy az iOS applikációk tesztelése sokkal egyszerűbb más platformokhoz képest.

Ahogyan azt korábban említettem, az Androidnak nagyobb a piaci részesedése mint az iOS-nek, de ez csak az érme egyik oldala. Az iOS platform adja a mobileszközök internetforgalmának több mint egyharmadát. Mit is jelent ez a mobilpiacon? Azt jelenti, hogy az iOS továbbra is domináns szereplő a mobilpiacon - legalábbis az online részén - az Android nagyobb piaci részesedése ellenére is.

Eszközök

Az iOS ökoszisztéma tulajdonképpen két eszközcsaládból áll:

  • az iPad eszközcsaládból,
  • és az iPhone eszközcsaládból, aminek része az iPod Touch is.

Ebben a listában az összes eszköz jellemzőit megtalálod felsorolva. A legfőbb különbség az iPhone termékcsaládon belül a hardverben és a képernyőméretben keresendő. iPhone-ból és iPod Touch-ból négy különböző képernyőméret létezik:

  • 3.5"
  • 4.0"
  • 4.7"
  • 5.5"

iPad-ből pedig három különböző képernyőméret létezik:

  • 7.9"
  • 9.7"
  • 12.9"

Bár a képernyőméretek közötti különbség befolyásolja a fejlesztés menetét, a legtöbb applikáció esetében azonban nincs szükség jelentős pluszmunkára. Ezt a sorozat későbbi részeiben részletesen kifejtem.

2012-ben az Apple bemutatta az iPad Minit, 2015-ben pedig az iPad család kiegészült az iPad Próval. Bár az iPad Mini és az iPad Pro bemutatása hatással volt az iparágra, ez mozgatta meg legkevésbé az iOS fejlesztői közösséget.

Az iPad Mini képernyője például sokkal kisebb a 9.7"-es iPad Air-nél de a felbontása azonos a 9.7"-es iPad eszközökkel. Az iPad Mini kisebb képernyője miatt az érintőterületek átlagos mérete kisebb lett, ami problémát okozhat néhány applikáció esetében.

iOS

Az Apple hagyományosan minden évben kiad egy új verziót mobil operációs rendszeréből. Ezidáig az Apple kilenc főverziót adott ki az operációs rendszerből, amikből a legfrisebb az iOS 9.

Az eszköztámogatás egy olyan aspektusa az iOS-nek, amit az emberek sokszor nem vesznek figyelembe. Vegyük például az iPhone 4S-t. Az iPhone 4S 2011-ben jelent meg és még ez is képes az iOS 9 futtatására. Nincs olyan mobil platform ami akár csak a közelébe érne ennek az eszköztámogatás területén.

App Store

Az egyik fő indok az iOS platformra történő fejlesztés mellett az App Store elképesztő sikere. A szoftvereladás még sosem volt ilyen könnyű az iOS-es és OS X-en elérhető Apple App Store-nak köszönhetően. Több mint egymilliárd alkalmazás után nehéz már kitűnni az IOS-es App Store-ból, de az iOS-t futtató eszközök száma is exponenciálisan növekszik.

A mobilpiac még gyerekcipőben jár és még mindig rengeteg kiaknázandó potenciál rejlik benne. Ahogyan a web a 90-es évek végén, a mobil piac is gyorsan nő, és az itt megkereshető pénz minden egyes okostelefonnal, okosórával és tablettel egyre csak növekszik.

4. watchOs és tvOS

2015-ben az Apple bejelentett két új operációs rendszert, a watchOS-t az Apple Watch-ra és a tvOS-t az Apple TV-re. Az Apple mind a két platformot megnyitotta a külső fejlesztők előtt, amivel elhozta a külső fejlesztésű appokat a csuklódra és a nappalidba.

A watchOS-hez és a tvOS-hez létező fejlesztői eszközök megegyeznek az iOS fejlesztői eszközeivel. Ez még egy indok amellett hogy az iOS ökoszisztémát válaszd. Az Apple operációs rendszerei, az OS X, az iOS, a watchOS és a tvOS mind szorosan integráltak, és a bennük rejlő lehetőségek végtelenek.

Végszó

Mostmár tiszta képed van az iOS ökoszisztémáról és remélem sikerült meggyőznöm téged arról hogy elkezdj iOS-re fejleszteni. A következő bejegyzésben megmutatom hogyan állítsd be a fejlesztői környezetet hogy elkezdhess dolgozni a natív SDK-val. Meg fogsz lepődni, hogy milyen egyszerű.

Ha kérdésed van vagy hozzá szeretnél szólni, a bejegyzés alatt megteheted, illetve Twitteren is elérhető vagyok.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.