Perché NON conviene sviluppare App iOS

Easy App Creator
Vai ai contenuti

Perché NON conviene sviluppare App iOS

Easy App Creator
Pubblicato da Easy App Creator in App · 16 Marzo 2023
Voglio elencare i motivi principali per cui oggi è meglio sviluppare una Web App piuttosto che una App per iPhone.

1. Rischi
Il primo aspetto da valutare è il fatto che gli app store e in special modo l'App Store di Apple, si possono rifiutare di pubblicare la tua App per mille motivi. Basta infatti andare a leggere le App Store Review Guidelines  di Apple dove viene detto quanto segue:

The App Store is a great way to reach hundreds of millions of people around the world. If you build an app that you just want to show to family and friends, the App Store isn’t the best way to do that.

Quello che viene accennato qui, in modo non proprio esplicito, è che le App che si vogliono pubblicare sullo Store devono essere di interesse mondiale o quasi. Questo esclude non solo le App che si vogliono mostrare a famiglia e amici, ma anche tutte le App che, ad esempio, sono rivolte ai dipendenti di un'azienda e non a chiunque. Quindi l'intera classe delle App aziendali ad uso interno probabilmente verranno rifiutate dalla pubblicazione sull'App Store di Apple.

4.2 Minimum Functionality

Your app should include features, content, and UI that elevate it beyond a repackaged website. If your app is not particularly useful, unique, or “app-like,” it doesn’t belong on the App Store. If your App doesn’t provide some sort of lasting entertainment value, it may not be accepted.

Quindi la tua App, per poter essere pubblicata, deve come minimo:

essere utile;
essere unica;
essere "app-like";
fornire qualche forma di intrattenimento duraturo.
Purtroppo tutti questi punti sono opinabili: quando si considera una App utile? Unica? "App-like"? Chi decide se fornisce qualche forma di intrattenimento duraturo?

Sono tutte cose che decidono i revisori dello store. Purtroppo noi sviluppatori scopriamo se l'idea del nostro cliente è utile o unica o "app-like" solo se la inviamo allo store per il processo di approvazione e quindi solo dopo che l'abbiamo sviluppata completamente!

If the App Store model and guidelines are not best for your app or business idea that’s okay, we provide Safari for a great web experience too.

In questo punto viene suggerita come alternativa il web ed è come se dicessero "La tua App non è stata approvata? Trasformala in una Web App". Noi fortunatamente utilizziamo le tecnologie web anche per realizzare App iOS e quindi il passaggio da App a Web App nel nostro caso non è devastante, ma prova a pensare ad uno sviluppatore che ha sviluppato una App per iOS utilizzando le tecnologie proprietarie di Apple (Objective-C o Swift, Xcode, ecc.): nel caso in cui l'App Store dovesse rifiutare la sua App sarebbe una tragedia in quanto dovrebbe riscriverla tutta d'accapo con le tecnologie web (HTML, CSS, JavaScript) ammesso che sia in grado di farlo. Prova a immaginare di essere il suo cliente: se ti va bene (lo sviluppatore riscrive l'App con tecnologie web) spendi il doppio, se ti va male (lo sviluppatore non è in grado di fare ciò) hai perso i tuoi soldi (di solito migliaia di euro).

2. Costi
Sviluppare una App per iOS è costoso. Molto più costoso che svilupparla per Android o come Web App. Questo perché per sviluppare una App iOS è obbligatorio disporre di hardware specifico Apple ed è obbligatorio iscriversi all'Apple Developer Program pagando un canone annuale. Come minimo servono 3'000 € di investimento iniziale.

Quelli appena elencati purtroppo sono i costi minori, i costi maggiori derivano dal fatto che Apple non ha mai trattato bene gli sviluppatori e questo si traduce in un ambiente di sviluppo (Xcode) buggatissimo e lentissimo che fa perdere un mare di tempo per riuscire anche solo a impacchettare la propria App e inviarla allo Store per il processo di approvazione.

Inoltre Apple gestisce male il rilascio degli aggiornamenti, pertanto se si aggiorna il sistema operativo del proprio iPhone (iOS) all'ultima versione disponibile c'è il rischio poi di non avere gli strumenti per svilupparci sopra poiché questi ultimi diventano compatibili con le nuove versioni di iOS solo in un secondo momento, quando cioè Apple rilascia gli aggiornamenti di Xcode.

Altro aspetto dolente è il supporto pressoché inesistente nonostante si paghi il canone annuale per essere Apple Developer. In caso di problemi, il più delle volte causati da bug dell'ambiente di sviluppo Xcode, si finisce per chiedere assistenza nel forum degli sviluppatori dove si ottengono le classiche risposte inutili e illogiche che sembrano date da automi a stati finiti. Stiamo parlando di intere giornate di lavoro buttate nel ... per tentare di capire come mai Xcode non compila, non riconosce più il nostro iPhone, non carica la build, ecc..

Poi c'è da considerare i costi di rilascio. Ogni volta che si vuole aggiornare la App, correggere un bug o qualsiasi intervento di manutenzione grande o piccolo che sia è sempre un bagno di sangue. Ogni 5-6 mesi dal rilascio iniziale le librerie usate vengono deprecate (diventano cioè obsolete) e gli strumenti di sviluppo e le procedure di rilascio cambiano. Quindi ogni volta, oltre alla modifica che si vuole effettuare, c'è da riscrivere una parte dell'App o rileggere chili di documentazione per capire come è cambiato il processo di rilascio di una App. In più ogni rilascio vuol dire una nuova richiesta di approvazione da parte di Apple con conseguente rischio che la App non sia più in linea con le linee guida aggiornate.

Il fatto poi che i sistemi Apple siano chiusi complica qualsiasi tipo di analisi e debug. Concetti perfettamente noti ad un ingegnere informatico, come ad esempio la cifratura a chiave pubblica e privata, vengono rinominati nel mondo Apple con buzzword che non vogliono dire nulla e servono solo a confondere le idee come "Provisioning profile", "signing identity", ecc.

Dall'altro lato sviluppare una Web App costa molto meno: semplificando, per installare una modifica basta copiare dei file su uno spazio web, non richiede l'approvazione di nessuno e gli standard web sono aperti e future proof (la prima pagina web della storia del 1991 è ancora oggi apribile con un normale browser).

3. Benefici
Quand'anche il povero sviluppatore, dopo mesi di duro lavoro, riuscisse a farsi approvare la App sviluppata probabilmente non otterrebbe l'effetto sperato in quanto le statistiche ci dicono che la maggior parte degli utenti installano 0 (zero) App al mese  sul proprio iPhone. Questo ci dice che una volta che l'utente ha installato i soliti Facebook, WhatsApp, YouTube e poco altro molto probabilmente non installerà la tua App.

Dall'altro lato la Web App non ha bisogno di essere installata anche se è possibile comunque aggiungerla alla Home grazie alla funzionalità di Safari "Aggiungi a Home". Se poi è stata sviluppata come Progressive Web App  avrà la sua icona sulla Home e si potrà aprire senza vedere la barra degli indirizzi avendo l'impressione che si tratti proprio di un App nativa.

4. Conclusione
Sviluppare una App per iOS è un percorso a ostacoli non indifferente per cui, a meno che la tua idea non sia utile, unica, "app-like" (come inteso da Apple) e debba accedere ad hardware particolare dell'iPhone, ti sconsigliamo vivamente di far sviluppare una App per tale dispositivo, il gioco non vale la candela.

Al suo posto ti consigliamo di far sviluppare una Progressive Web App iOS/Android.





Torna ai contenuti