La mia alternativa al pessimo UIAlertController di Apple: PMAlertController

Prefazione: Yep, è passato qualche mese dal mio ultimo articolo qui sul blog (oops…) ma mi farò perdonare raccontandovi per l’ennesima volta la bugia che tornerò con frequenza a scrivere. Perciò zero lamentele e godetevi questo nuovo articolo, che stasera sono ispirato.

Spesso un sacco di progetti open source partono con l’intenzione di migliorare qualcosa, oppure come lodevoli iniziative per introdurre piccole soluzioni dirette, che semplicemente funzionano.

Negli anni passati durante la mia carriera da sviluppatore ho preso talmente tanto dal mondo open source che alla fine dell’anno scorso ho deciso che a mia volta era venuto il momento di iniziare a utilizzare il mio profilo Github per contribuire a progetti terzi. Mi si è aperto un mondo davanti, la possibilità di collaborare a soluzioni adottate da migliaia di sviluppatori, e avere a portata di mano ciò che rende più felice un dev, ovvero avere un impatto su centinaia, migliaia, milioni di persone che hanno la possibilità di utilizzare un’app che usa del tuo codice.

Make an impact.

Il mio ultimo progetto personale e open source sul quale ho lavorato e lanciato a maggio di quest’anno è stato PMAlertController. L’idea è nata da una mia semplice necessità, una necessità condivisa da qualche altro migliaio di sviluppatori a quanto pare.

PMAlertController è una piccola ma essenziale libreria che permette, finalmente, di sostituire l’odioso UIAlertController di Apple, che come sappiamo è totalmente uncustomizzabile nell’aspetto, con un alert nuovo, fresco e customizzabile al cento per cento.

pmalertcontroller-2

Poco prima di lanciarlo e presentarlo al mondo, ho pensato bene di rendere il readme su github un minimo presentabile, quindi ho creato un semplice logo testuale, degli screenshot accattivanti ed esempi di codice semplici e diretti.

L’integrazione con un dependency manager è ormai una componente essenziale per essere quantomeno considerabile una libreria, quindi fin da subito l’ho resa fruibile tramite CocoaPods, e successivamente tramite Carthage. Probabilmente in futuro arriverà anche la compatibilità con il Package Manager di Apple.

Trovato il bisogno, realizzata la soluzione, impacchettata per bene e messa online, rimaneva un ultimo problema da risolvere, trovare gli utilizzatori. Anche qui ho avuto dalla mia parte la conoscenza di come fare del buon marketing mirato ai dev. In particolar modo, ero iscritto a delle newsletter che con cadenza quasi settimanale inviano nella casella postale di miglia di sviluppatori sparsi in tutto il globo un riassunto delle notizie hot della settimana e delle librerie più promettenti su GitHub.

Inutile dire che mi sono subito messo all’opera per raccogliere tutte quelle che potevano essere di mio interesse, e con linguaggio forbito di chi sa cosa sta proponendo ho subito scritto a circa 10 newsletter che trattavano il tema verticale dello sviluppo su iOS.

Una, due, tre, cinque, dieci. In una settimana tutte quelle a cui avevo scritto avevano citato PMAlertController come una delle librerie “mush have” da utilizzare e tenere d’occhio. In pochissimo tempo le star sono salite da circa 50 a 500, con picchi di star durante l’invio delle newsletter stesse.

Ma non mi sono fermato li, ho anche aperto delle pull request su dei repository Github sul quale è possibile sottoporre delle nuove librerie che possono essere interessanti per la community, una delle quali ha ben 15000+ star. Non credo che questo mi abbia portato un grande beneficio, ma essere in lista è sicuramente meglio che non esserci.

Oggi PMAlertController ha raggiunto quasi 1100 star su github. I numeri estrapolati da Cocoapods dicono che ha realizzato 2996 download manuali, mentre 235 applicazioni utilizzano la mia libreria integrata tramite cocoapods (non ho le statistiche su installazioni manuali o carthage). Decisamente un bel risultato. Fatevi il conto di quanti utenti possono aver visualizzato il mio lavoro. Ve lo dico io: 1.057.500 se consideriamo una media di 5000 download ad applicazione (chiaramente vi saranno app con 10 download, app mai pubblicate, o app che hanno avuto un boom). Mi riservo comunque di darvi numeri più precisi e puntuali non appena finirò tra gli SDK più usati nella top 200 free di app store. 😀

Il futuro della libreria sembra abbastanza roseo, e proprio oggi ho ultimato il passaggio a Swift 3, che include tra le altre cose l’aggiunta di un header view che la rende ulteriormente personalizzabile.

Vi invito chiaramente a mettere una star sul progetto, ed eventualmente a utilizzare la funzione “watch” di Github per rimanere aggiornati sui cambiamenti futuri.

Ho già in mente la prossima libreria open, la porterò alla luce quanto prima. Nel frattempo, leggetevi questo articolo, che magari vi sprona a contribuire ai progetti open source. Se tu che leggi sei uno sviluppatore iOS e hai suggerimenti o vuoi apportare delle migliorie, puoi liberamente aprire una pull request.

Avendo perso l’ispirazione serale l’articolo termina qui, senza se e senza ma. Ma puoi seguirmi sui social se ti va: @pmusolino su twitter, oppure sul mio profilo facebook.

Cheers

Paolo

One thought on “La mia alternativa al pessimo UIAlertController di Apple: PMAlertController

  1. Ciao, premetto che non l’ho provato (sarà sicuramente un ottimo controllo). Volevo, però, dire una cosa: facendo qualche esperimento (tralascio l’aspetto delle funzionalità mancanti, ecc.ecc.), notavo che il componente che la tua libreria rimpiazza una volta istanziato resta in memoria anche dopo il dismiss. Se tu parti con 4 Mb di memoria, ti richiami l’alert e passi a 7, dopodiché non sembri mai tornare a 4. Immagino che hai risolto questo problema!

Leave a Reply

Your email address will not be published. Required fields are marked *