Databáze je nejdůležitější součástí aplikace, která může vaši aplikaci zrychlit, pokud máte správný výběr, a na druhou stranu ji může také zpomalit, pokud nemáte správný výběr databáze podle požadavků aplikace. Pokud chcete vytvořit skvělou aplikaci, která poběží rychle a bude prostě fungovat (bez přípustných chyb), budete muset pečlivě promyslet všechny aspekty vývoje aplikace.
Nejčastějšími možnostmi databází pro iOS jsou SQLite a Core Data. Existuje však také nová a nejlepší možnost Realm.
V tomto článku si vysvětlíme rozdíl mezi SQLite a Core Data a vysvětlíme si, čím se Realm liší od SQLite a Core Data a proč bychom měli při vývoji aplikace pro iOS zvolit Realm.
SQLite:
SQLite je nejpoužívanější a nejotevřenější databáze. Implementuje transakční databázový stroj SQL bez nutnosti konfigurace. Poskytuje jednoduché a uživatelsky přívětivé programovací rozhraní, protože je napsána v jazyce ANSI-C. SQLite je také velmi malý a lehký a celou databázi lze uložit do jednoho multiplatformního diskového souboru.
Důvod, proč bychom měli SQLite v naší aplikaci použít.
- SQLite nemá samostatný serverový proces. Čte a zapisuje přímo do běžných diskových souborů.
- Nulová konfigurace
- Bezpečný přístup z více procesů a vláken
- Ukládá data v tabulkách s jedním nebo více sloupci, které obsahují určitý typ dat.
- Má funkci Data Constrains.
- Pracuje s daty, uloženými na disku.
- Může upouštět tabulky a upravovat data, aniž by je načítal do paměti.
Core Data:
Core Data je druhá hlavní technologie ukládání dat v systému iOS, která je k dispozici vývojářům aplikací. V závislosti na typu dat a množství dat, která potřebujete spravovat a ukládat, mají SQLite i Core Data své výhody i nevýhody. Core Data se více zaměřuje na objekty než na tradiční metody tabulkových databází. U Core Data vlastně ukládáte obsah objektu, který je reprezentován třídou
Mezi SQLite a Core Data je určitý rozdíl z hlediska paměti
- Využívá více paměti než SQLite
- Využívá více úložného prostoru než SQLite
- Rychlejší při načítání záznamů než SQLite.
- Nemá Data Constraints, pokud je potřeba implementovat obchodní logiku.
- Pracuje v paměti (data je třeba načíst z disku do paměti)
- Potřebujeme načíst celá data, pokud potřebujeme zrušit tabulku nebo provést aktualizaci
- Jádro dat je ale rychlejší než SQLite
Realm:
Realm byl navržen tak, aby byl rychlejší a efektivnější než předchozí databázová řešení. Toto nové řešení je multiplatformní mobilní databáze Realm. Je k dispozici v jazycích Objective-C a Swift a je určena pro systémy iOS a Android.
Je na ní opravdu skvělé, že veškerou práci zvládnete pomocí několika řádků kódu. Realm se velmi snadno instaluje a ve srovnání s SQLite a Core Data se s ním pracuje rychleji. Také databázové soubory lze sdílet mezi systémy iOS a Android.
Pokud navrhujete aplikaci s velkým množstvím záznamů a pro velký počet uživatelů, musíte od začátku věnovat zvláštní pozornost škálovatelnosti. Realm je v tomto směru skvělý a umožní vám rychle zpracovávat velké množství dat. abyste mohli s Realmem začít pracovat, stačí vám k tomu alespoň systém iOS 8 nebo OS X 10.9. Starší verze toto nové přímočaré řešení pro správu lokálních úložišť a databází nepodporují.
Proč Realm:
Realm je neuvěřitelně rychlý a snadno použitelný a uvidíte, že vše, co potřebujete, zvládnete jen s pár řádky kódu bez ohledu na to, zda jde o čtení nebo zápis do databáze. Zde se pokusím shromáždit všechny výhody a důvody, proč je Realm nejlepší volbou pro práci s databází ve vaší mobilní aplikaci:
- Snadná instalace: Jak uvidíte v další části o práci s Realmem. Instalace Realm je snadnější, jak si představujete. Pomocí jednoduchého příkazu v Cocoapods se zde můžete pustit do práce s Realmem.
- Rychlost: Realm je neuvěřitelně rychlá knihovna pro práci s databází. Realm je rychlejší než SQLite a CoreData a zde uvedené benchmarky jsou toho nejlepším důkazem.
- Napříč platformami: Databázové soubory Realm jsou multiplatformní a lze je sdílet mezi systémy iOS a Android. Bez ohledu na to, zda pracujete v jazyce Java, Objective-C nebo Swift, budete používat své vysokoúrovňové modely.
- Škálovatelnost: Škálovatelnost je při vývoji mobilní aplikace velmi důležitá, zejména pokud vaše aplikace pracuje s velkým počtem uživatelů a obrovským počtem záznamů. To byste měli zohlednit již na začátku při návrhu a výběru nástrojů, které budete používat. Realm je na škálovatelnost připraven a s velkými daty pracuje během okamžiku. Při použití Realm přinesete do své aplikace rychlost a plynulost.
- Dobrá dokumentace & Podpora: Tým Realm poskytl čitelnou, přehlednou a bohatou dokumentaci o Reamu. V případě problémů se na ně můžete obrátit prostřednictvím Twitteru, Githubu nebo StackOverflow.
- Důvěryhodný:
- Zdarma: Se všemi těmito úžasnými funkcemi je Realm zcela zdarma.
Závěr
Pokud si máte vybrat mezi core data a SQLite, co byste měli použít? Core Data nebo SQLite? Stručně řečeno, pokud potřebujete lehké řešení a nepotřebujete sadu funkcí Core Data, pak vám může vyhovovat SQLite.
Ale na druhou stranu, pokud spravujete složitý objektový graf s mnoha entitami, atributy a vztahy, pak Core Data rozhodně stojí za zvážení.
Nakonec přichází na řadu Realm po přečtení všech bodů budete o Realm dobře vědět, že není co dodat, Realm je nejlepší volbou.