Už je to nějakou dobu, co Apple na keynotu WWDC19 představil nejen pro uživatele iOSu, ale i pro jeho vývojáře spoustu pěkných věcí, mezi nimiž byla i funkce Sign in with Apple. Protože v Ackee jsme funkci zavedli ve všech aplikacích, které vyžadují přihlášení přes sociální sítě, rozhodli jsme se podělit se o některé své postřehy a zkušenosti.
Proč se přihlašovat přes Apple?
Sign in with Apple je single sign-on služba zaměřená na soukromí a bezpečnost, která slouží jako alternativa k již existujícímu přihlašování přes sociální sítě, jako jsou Facebook či Google. Slibuje rychlé, bezpečné a nesledované užívání. Všechny účty jsou chráněny dvoufaktorovou autentizací, uživatelé si mohou jednoduše vytvořit nový účet pomocí Apple ID napojeného na jejich zařízení a ověřovat svou totožnost přes Face ID nebo Touch ID. To všechno ve vyladěném nativním rozhraní.
Apple prohlašuje, že nesleduje aktivitu svých uživatelů, a zároveň jim dává možnost skrýt si e-mailovou adresu, kterou nahrazuje adresou vlastní, náhodnou. Přihlašovací služba funguje nativně na iOS, macOS, tvOS a watchOS, ale může být použita i na webech nebo jiných mobilních platformách jako např. Android. Pokud vás žádné z těchto buzzwordů k implementaci Sign in with Apple nepřesvědčily, zřejmě se jí stejně nevyhnete. Směrnice Apple App Storu pro posuzování aplikací totiž vyžadují, aby všechny nové aplikace a aktualizace, které používají přihlášení přes sociální sítě nebo jiné třetí strany, zavedly funkci Sign in with Apple do 30. dubna 2020.
Jak to funguje?
Když se přihlašujete přes Apple ID poprvé, vyskočí na vás pěkné nativní okno, které vám vysvětlí hlavní výhody a vlastnosti nové funkce. Poté si můžete zvolit, zda chcete svůj e-mail používat nebo raději skrýt. Když se ho rozhodnete skrýt, Apple vygeneruje unikátní e-mailovou adresu s doménou @privaterelay.appleid.com, s níž mohou vývojáři a aplikace komunikovat, aniž odhalí vaši opravdovou adresu, která tak zůstává skutečně soukromá. Ale nemějte strach, všechny e-maily zaslané na vaši novou adresu jsou automaticky přeposílány na váš reálný e-mail napojený na Apple ID, takže o žádné důležité zprávy z aplikace nepřijdete. A když jde všechno, jak má, sláva, poprvé jste se úspěšně dostali do aplikace díky funkci Sign in with Apple! Takže? Samá výhoda!
Naše zkušenosti
Apple se snaží nasazení funkce Přihlásit přes Apple udělat co nejjednodušší, ale bohužel jsme narazili i na několik překážek.
Zaprvé, Apple poskytuje své vlastní tlačítko Sign in with Apple se schváleným textem, fontem, barvou a stylem, ale i API. Velikost písma na tlačítku si ale ručně neupravíte. Možná byste čekali, že písmo poroste spolu s rámečkem tlačítka, ale jak můžete vidět na obrázku níže, není tomu tak vždycky. A už jsem zmínil, že tlačítko se automaticky nepřizpůsobuje dark modu, ačkoli je plně nativní a Apple doporučuje ho používat? Všechny změny si musíte vyřešit sami – na rozdíl od ostatních komponent UIKitu, které se změnám vlastností přizpůsobují bez jakýchkoli dalších problému. S ohledem na tohle chování jsme se rozhodli defaultní tlačítko v některých našich appkách nepoužít. Nejdřív jsme si nebyli jistí, zda je Apple schválí, protože pokyny nebyly tehdy úplně jasné, ale nakonec všechny bez dalších obtíží prošly.
Řekněme, že vaše aplikace obsahuje profil, kde chcete po přihlášení zobrazit základní uživatelské informace, jako je celé jméno, e-mail nebo fotografie. Se Sign in with Apple můžete tyto informace získat pouze ve chvíli, kdy se uživatel přihlásí poprvé. Při následujících přihlášeních to už možné není, takže musíte myslet na to, abyste si informace o uživateli uložili již při první registraci. Fotografii uloženou k účtu Apple ID navíc není možné získat vůbec.
Testovat implementaci funkce Sign in with Apple ještě při vývoji může být také celkem krkolomné. Jednoduše řečeno, neexistuje žádný rychlý a jednoduchý způsob, jak přihlášení poprvé otestovat a získat celé jméno a e-mail. Musíte nejdřív odstranit oprávnění v Nastavení > Apple ID > Heslo a zabezpečení > Apple ID přihlášení / Aplikace, které používají vaše Apple ID > Jméno aplikace > Přestat používat Apple ID, což může být po několika opakováních zbytečně únavné.
V neposlední řadě je důležité zmínit, že přihlášení přes Apple ID je možné využívat až od verze iOS 13. Říkali jsme si, že bychom to mohli “ohackovat” a implementovat funkci podobným způsobem, jako se to dělá u webů nebo na Androidu – pomocí přesměrování na autorizační stránku Applu. Protože ale toto chování není nativní, mohlo by být považováno za nežádoucí a následně odmítnuto během review v App Storu. Bohužel jsme museli tlačítko Sign in with Apple se všemi souvisejícími funkcemi pro starší verze iOS skrýt. Přestože se nově vydané verze iOS šíří celkem rychle, někteří uživatelé se přece jen mohou cítit opomenuti.
Shrnutí
Jak bylo řečeno, Sign in with Apple pro nás vývojáře možná má určité nevýhody, ale kolem a kolem je to opravdu skvělá funkce, kterou máme rádi. Já osobně ji v aplikacích, které denně používám, upřednostňuji před všemi ostatními možnostmi a věřím, že to tak bude mít i spousta jiných uživatelů Applu. Nejen tohle, ale celý WWDC19 byl jasným znamením toho, že Applu na jeho komunitě skutečně záleží, vývojáře nevyjímaje.
Pokud byste chtěli podrobněji vidět, jak implementujeme Sign in with Apple v kódu a integrujeme jej do aplikací prostřednictvím Firebasu, určitě se podívejte na video z naší přednášky na Cocoaheads Prague meetup. A pokud vás zajímá, s čím novým Apple přijde tentokrát, sledujte s námi nadcházející WWDC20 – a taky náš blog. :)