Instagram è una delle app più utilizzate al momento e vanta 300 milioni di utenti. Questa app non è altro che piattaforma in cui è possibile pubblicare foto e condividerle su altri social network. Nata nel 2010 e quasi 2 anni dopo venne acquisita da Facebook.
Instagram è gratuita e il suo codice sorgente è chiuso. Come la maggior parte delle app, moltissime delle funzioni presenti nel suo sorgente provengono da librerie Open Source.
Instagram è GitHub
Instagram possiede un account aziendale su GitHub, in cui pubblica tutti i Fork delle librerie Open Source che utilizza nella sua App.
Creare un Fork significa clonare un progetto già esistente per avviarne uno proprio. Di solito questa azione è utilizzata quando si ha la necessità di avere particolari personalizzazioni nel proprio codice che non sarebbero utili nel progetto iniziale.
A questo indirizzo potete trovare l’account ufficiale di GitHub di Instagram: link. Potete trovare tutte le modifiche applicate alle librerie utilizzate.
Alcune delle librerie più rilevanti
Dopo aver visto le librerie più rilevanti sui prodotti apple (link), vediamo quelle più rilevanti su instagram.
AFNetworking
Questa libreria viene utilizzata nei dispositivi IPhone e Android e serve per semplificare l’interfacciamento di un App con un Back-end web o chiavi esterne.
Apache Thrift
Questo è un Framework sviluppato per Facebook, è utilizzato per creare interfacce tra diversi linguaggi di programmazione.
Appirater
Si può trovare nella maggior parte delle applicazioni per iPhone, ha lo scopo di ricordare all’utente dell’app di rilasciare un voto o una recensione.
Apple Reachability
Funzione presente solo negli iPhone, permette di spostare verso il basso tutta la schermata per semplificare l’uso dell’app con una sola mano.
Boost
Collezione di Librerie in C++, sono circa 80 librerie diverse e variano dalla gestione dei file di sistema, alla gestione dei processi in parallelo che alla gestione di immagini.
CocoaLumberjack
Framework utilizzato per Mac e iOS per la gestione delle connessioni.
Cocoawithlove-Base64
Libreria Unix per la gestione delle codifiche.
Curl
Libreria utilizzata per lo scambio di dati nelle applicazioni web.
Flickr-OAuth-iOS
Libreria per interfacciare la piattaforma Flickr con applicazione iOS, comprese quelle per iPhone, iPad e iPod.
Google Breakpad
Libreria per la gestione dei report dei crash
Google-glog
Libreria per la gestione delle connessioni su dispositivi Android
Ios5-cookbook
Strumenti per lo sviluppo di applicazioni per iPhone.
JSONKit
Insieme di librerie per il trattamento di dati in formato Json.
LXReorderableCollectionViewFlowLayout
Librerie per il riordino di elementi da touchscreen.
MBProgressHUD
Classe per iOS per la gestione delle opacità utilizzate per indicare le operazioni in primo piano.
MyOpenALSupport
Insieme di librerie di supporto per applicazioni iOS, utilizzate per gestire animazioni o effetti grafici.
NSNotifications and Background Threads
Libreria per la gestione di notifiche e processi.
NSString+XMLEntitites
Framework per semplificare lo sviluppo su iOS.
Oauthconsumer
Libreria per incrementare la sicurezza su iPhone.
Ohhttpstubs
La libreria che viene utilizzata per eseguire i test su rete.
Protobuf
Linguaggio di google per serializzare le informazioni.
QSUtilities e
Insieme di librerie per l’Objective-C, le funzionalità son multiple, vanno dal accesso alla rete all’ottimizzazione di alcuni processi.
Scifihifi-iphone
Libreria ormai deprecata, utilizzata per la gestione delle chiavi di rete.
SocketRocket
Insieme di librerie per iOS che contengono varie utilità per le connessioni in rete.
UICKeyChainStore
La libreria che sta prendendo il posto di scifihifi-iphone.