Fork me on GitHub
con Valerio Galano

Il podcast dove si ragiona da informatici

Un informatico risolve problemi, a volte anche usando il computer

Riflessioni e idee dal mondo del software

Episodio del podcast

Essere uno sviluppatore iOS (con Alex Raccuglia di Ulti.media)

15 maggio 2022 Podcast Episodio 100 Stagione 2
Essere uno sviluppatore iOS (con Alex Raccuglia di Ulti.media)

Descrizione

Nell’episodio di oggi, Alex Raccuglia (ulti.media) ci guida in un viaggio alla scoperta del mondo dello sviluppo Apple.

Codice Sconto PHPDay: community_PIC
Codice Sconto Ulti.media: PENSIERI20

I link dell’episodio di oggi:
https://2022.phpday.it/

Ulti.media
https://ulti.media

Alex su Twitter:
https://twitter.com/ulti_media
https://twitter.com/alxgi

I podcast di Alex:
https://www.spreaker.com/show/technopillz
https://www.spreaker.com/show/mdb-summah-radio
https://www.spreaker.com/show/il-vino-lo-porto-io

Siti da cui Alex prende ispirazione:
https://swiftbysundell.com
https://www.hackingwithswift.com
https://www.youtube.com/watch?v=bqu6BquVi2M&list=PLpGHT1n4-mAsxuRxVPv7kj4-dQYoC3VVu
https://www.youtube.com/c/SeanAllen
https://www.raywenderlich.com/
https://www.youtube.com/user/Apple


Attrezzatura:
Shure Microfono Podcast USB MV7 - https://amzn.to/3862ZRf
Neewer NW-5 Pannello fonoassorbente - https://amzn.to/3rysTFP

Utilizzando i link affiliati, il costo di un qualsiasi acquisto non sarà maggiore per te, ma una piccola parte del ricavato servirà per sostenere il progetto.

Sostieni il progetto

Sostieni tramite Satispay
Sostieni tramite Revolut
Sostieni tramite PayPal
Sostieni utilizzando i link affiliati di Pensieri in codice: Amazon, Todoist, Readwise Reader Proton Mail, Proton VPN, Proton Pass, Satispay

Partner

GrUSP (Codice sconto per tutti gli eventi: community_PIC)
Schrödinger Hat

Crediti

Sound design - Alex Raccuglia
Voce intro - Maria Chiara Virgili
Voce intro - Spad
Musiche - Kubbi - Up In My Jam, Light-foot - Moldy Lotion, Creativity, Old time memories
Suoni - Zapsplat.com
Cover e trascrizione - Francesco Zubani

Mostra testo dell'episodio

Nascondi

Quella che segue è una trascrizione automatica dell'episodio.

Pensieri in codice, se mi segui da un po’ lo saprai già, è un podcast nel quale io ti parlo di tutti quegli argomenti che stuzzicano un po’ la mia curiosità, dei quali mi va di esplorare in maggior dettaglio le caratteristiche o che ancora mi interessano per via del loro funzionamento. A volte sono argomenti che già conosco bene e dei quali ti racconto aggiungendo esperienze e riflessioni personali, altre volte sono informazioni nelle quali incappo semplicemente per caso, per via del mio lavoro o dei miei interessi e che reputo però interessanti da condividere. Altre volte ancora, come in questo caso, sono ambiti nei quali non conosco granché ma che mi piacerebbe invece approfondire. E dal momento che non mi va di parlare di cose di cui non conosco, credo che, come in tanti altri casi nella vita, affidarsi a qualcuno che ne sappia più di te sia sempre la scelta più saggia non che quella più produttiva. Ed è proprio quello che ho fatto oggi, ho invitato una persona di cui mi fido e che stimo per rivolgerle un po’ di domande che ho in mente. A breve, quindi, scopriremo un po’ insieme cosa vuol dire essere uno sviluppatore iOS. Prima, però, la sigla. Prima di iniziare con l’argomento di questo episodio, però, voglio condividere con te una novità. Da oggi, in realtà da qualche giorno ma nei podcast si dice da oggi, Pensieri in Codice è partner del PHP Day. Il PHP Day, o PHP Day per dirla all’italiana, per chi non lo sapesse è la conferenza per la community PHP che si svolge ogni anno in Italia ben dal 2003, penso sono quasi 20 anni. Si tratta di un evento importante a livello europeo, con talk sempre super interessanti e speaker sempre disponibili e simpatici. L’edizione di quest’anno, 2022, si svolgerà nei giorni 19 e 20 maggio, quindi tra pochissimo, e sarà in versione ibrida, cioè sia online che in presenza nella bellissima Verona. Se sei uno sviluppatore PHP o uno sviluppatore in generale e non conosci o non hai mai partecipato al PHP Day, beh, oggi è arrivato il momento di rimediare. In descrizione trovi il link al sito ufficiale con tutti i dettagli, mi raccomando. Inoltre, per il solo fatto di essere parte della community di Pensieri in Codice hai diritto al 20% di sconto sull’acquisto del biglietto di ingresso. Ti basterà inserire nel form il codice sconto COMMUNITY underscore PIC con COMMUNITY scritto piccolo e PIC maiuscolo, ma comunque lo trovi in descrizione. E ancora, come se tutto questo non bastasse, hai anche la possibilità di vincere un biglietto online omaggio, semplicemente partecipando ad un piccolo contest. Se infatti hai supportato o supporterai Pensieri in Codice nella settimana tra il 10 e il 18 maggio, parteciperai all’estrazione. Per supportare intendo scegliere tra una delle seguenti azioni, cioè lasciare una recensione sulla tua app di podcast preferita, iscriverti ad uno dei servizi affiliati come Satisfay, Protonmail o Todoist eccetera, oppure fare una piccola donazione, oppure tutte e tre le cose insieme e avrai più chance. Tutti i link di cui parlo li trovi in descrizione o sul sito pensieriincodice.it. Il giorno 18, per farla nerd diciamo così, metterò insieme tutti gli identificativi dei vari utenti, tipo il nickname per le recensioni o l’email per le iscrizioni eccetera, genererò per ciascuno un checksum MD5 e ordinerò il tutto in ordine alfabetico, il primo classificato vincerà il biglietto. L’unica cosa che ti raccomando di fare per stare sicuro è inviarmi un email o un messaggio su Telegram per segnalarmi la tua azione, non vorrei perdermela per via di qualche notifica sfuggita o perché in alcuni casi non sono in grado di risalire alla persona che ha effettuato l’azione. Trovi sempre tutti i miei vari contatti sul sito pensieriincodice.it o su valeriogalano.it. Bene, comunicate le notizie di oggi, passiamo all’argomento dell’episodio, la domanda alla quale vorrei dare una risposta è che cosa vuol dire essere uno sviluppatore iOS? Ok, lo so, magari starai pensando che cavolo di domanda è questa, oppure sei tu stesso uno sviluppatore iOS e non sai bene che cosa rispondere, quindi provo a spiegare un po’ meglio cosa intendo. Partiamo dal fatto che non tutti i programmatori sono uguali, e non parlo ovviamente delle singole persone che hanno chiaramente ciascuna le proprie caratteristiche individuali, ma mi riferisco proprio alla figura professionale del programmatore, o ancora meglio dello sviluppatore, non esiste una sola ma una molteplicità, ciascuna con le proprie competenze, abilità e caratteristiche. E queste peculiarità sono tantissime e spesso anche molto differenti fra loro, rendendo questa professionalità molto eterogenea. Ciò vale perfino per sviluppatori che lavorano nello stesso ambito di specializzazione e figuriamoci per quelli che lavorano in campi diversi fra loro. Ad esempio, come saprai, visto che ormai l’ho ripetuto tante volte, io sono uno sviluppatore web, in particolar modo esperto nello sviluppo di back-end con tecnologia PHP, ciò non vuol dire che disdegno lo sviluppo di front-end o con altre tecnologie, Node.js, JavaScript, ho perfino pubblicato episodi su Deno, Yugo, Wordpress, ma se devo pensare a me dal punto di vista professionale, sicuramente le prime parole che mi vengono in mente sono PHP e back-end. E in realtà a queste vanno poi aggiunte altre due parole che contraddistinguono invece il mio modo di lavorare e sono consulente e freelance. Prendendo queste quattro parole, termini, caratteristiche, chiamale come vuoi, mettendole insieme e shakerando, si ottiene me, la mia figura professionale, il mio lavoro almeno per la maggior parte del tempo in cui lo svolgo. Ciò significa che in generale io ho un mio modo di approcciarmi allo sviluppo, un mio modo di elaborare la risoluzione dei problemi o degli strumenti che conosco più o meno bene, so bene o male a quali problemi vado incontro quando affronto un nuovo progetto, di cosa potrei avere bisogno e quali sono i miei limiti. Ma vuol dire anche che devo lavorare oltre che alla progettazione e alla realizzazione del codice, anche alla ricerca dei clienti, ad esempio, o all’amministrazione fiscale o al supporto tecnico. Vuol dire che devo essere ben conscio che ogni mia consulenza ha una durata prestabilita, oppure, in caso contrario, potrebbe comunque terminare, certo, con un preavviso, ma è un concetto molto più fragile, diciamo così, di un rapporto di lavoro dipendente. E poi devo sapere che potrei dovermi cimentare con attività di recupero crediti, di contrattazione, di rimodulazione degli accordi. Insomma, per farla breve, essere uno sviluppatore, nel mio caso, vuol dire un po’ tutte queste cose, certo in proporzioni ovviamente diverse, ma tutte in un unico calderone. E dunque la mia curiosità riguarda essenzialmente come traslare tutto questo ragionamento nel mondo Apple, un mondo che, almeno ad occhi da profano quale io sono, è fatto di tante regole, tante costruzioni e tante limitazioni, ma anche tante possibilità interessanti che in altri ambiti non sono così facilmente accessibili. Quindi, come ti anticipavo, oggi ho invitato a parlarne qui con noi una persona che di questi argomenti ha grande esperienza, uno sviluppatore iOS, ma anche un amico e una persona dalle mille sfaccettature. Sicuramente me l’avrai già sentito nominare, perché tra le sue tante attività si è occupato anche del sound design di Pensieri in Codice, ha partecipato all’ultimo episodio speciale di Natale ed è anche molto attivo nel nostro gruppo Telegram. Lui è Alex Racuglia e, oltre ad essere podcaster e regista, gestisce anche una piccola ma prolifica software house chiamata Ulti.media. Ciao Alex, benvenuto e grazie ad aver accettato l’invito. Ma grazie a te, è sempre un piacere avere a che fare con te e soprattutto per me è un onore essere qui nel tuo podcast che ascolto avidamente tutte le volte che esce. Ed io ti ringrazio ancora e non posso che esserne felice perché sai benissimo quanta stima ho di te. Ma iniziamo subito con l’inquadrare la tua figura professionale. Spiegaci un po’ di cosa ti occupi e di cosa si occupa la tua Ulti.media. Allora, mi inquadro velocemente come persona. Io ho studiato informatica alle superiori, ingegneria informatica all’università e ho iniziato a lavorare durante l’università per una piccola software house di Milano che si occupava di multimedia. Il mio sogno da bambino è sempre stato fare video, fare cinema, ma non avevo la possibilità ai tempi degli anni Ottanta di avere una telecamera, una cosa da ricchi ricchi ricchi e non c’erano scuole di professionali per fare cinema. Per cui ho fatto l’informatico e mi sono anche divertito tantissimo. In questa software house hanno iniziato a avere necessità di fare piccole animazioni e piccoli video e nell’arco di tre mesi mi sono ritrovato a fare solo video dalla mattina alla sera fino a diventare regista di spot televisivi, video promozionali ecc. Ma nel tempo libero, dato che sono uno sviluppatore, avendo un po’ di skill informatici, mi sono sempre sviluppato dei piccoli tool interni che mi aiutassero nel workflow di produzione del video. Perché uno potrebbe pensare che fare video è un’attività molto artistica, ma in realtà la parte artistica rappresenta l’uno per mile del tempo e il resto del tempo è ingegneria, anche lì. Di conseguenza se ci sono strumenti che aiutano nel workflow, benvengano. Alcuni me li sono sviluppati io e qualche anno fa, tre o quattro anni fa, ho iniziato a dire ma sai che c’è? Ste cose sono talmente carine che potrei anche pensare di venderle. A un certo punto ho trovato il dominio giusto che era Ulti.media, cioè con l’estensione punto media, e mi sono buttato. Dire che ho fondato una software house è dire tanto, però ho cominciato a occuparmi anche della commercializzazione di queste app. Nella maggior parte dei casi sono app per macOS che integrano il lavoro di chi fa montaggio video, però non disegnando anche la parte audio. Infatti la primissima app che ho sviluppato, che si chiama PodCleaner, si chiamava perché adesso non c’è più, c’è un PodCleaner Pro che è la terza versione, era essenzialmente un’app pensata per pulire l’audio, per aiutare il mio lavoro, il mio hobby come podcaster, perché anch’io faccio podcast. Nel corso degli anni ho sviluppato alcune app, alcune di successo tra virgolette, alcune un po’ meno. Diciamo che però l’obiettivo di questa software house è quello di aiutare la gente che fa il mio lavoro, il mio primo lavoro, il montatore video, il regista, chi si occupa di post-produzione, togliendogli le castagne dal fuoco, diciamo aiutando le persone nel workflow. Come ti ho detto, la creatività è l’uno per mille, il resto è ingegneria e molto spesso sono anche lavori ripetitivi. Le mie app cercano di aiutare l’utente, cioè il montatore, nei lavori ripetitivi cercando di automatizzarli. Questo è l’inquadramento di quello che io faccio. Ho sviluppato tanto per macOS perché sono un utente Mac dal 1993, pensate, before it was cool. Di conseguenza ho anche sviluppato un po’ di skill per iOS e negli ultimi anni ho sviluppato più come sviluppatore dipendente, non indipendente, cioè proprio al soldo di una software house, cioè della software house per cui io lavoro ancora, che oltre a fare i video comunque continua a fare informatica. Per questa software house ho sviluppato due app corporate interne iOS e nel frattempo però ne ho commercializzati due o tre per iOS sull’App Store, app che hanno avuto fortune alterne, che è un modo carino per dire che non è che abbiano avuto un grande successo. Diciamo che alla fine si ripagano l’abbonamento annuale al registro degli sviluppatori di Apple, però il mio core business adesso è comunque sempre quello di Mac, anche se conosco abbastanza bene il mercato di iOS. Perfetto, chiarissimo. Senti, io ti ho invitato a parlare di questo argomento perché almeno dall’esterno ho la percezione che il tuo rapporto con lo sviluppo iOS sia, diciamo così, a tutto tondo. Tu progetti e sviluppi il codice chiaramente, ma intrattieni anche il rapporto con Apple, con i clienti, gestisci il supporto, svolgi un po’ in prima persona tutte quelle attività che svolgiamo noi indipendenti o freelancer, come vogliamo definirci, giusto? E come si configurano tutti questi aspetti quando si ha a che fare con un gigante come Apple, con il suo marketplace che notoriamente è piuttosto costrittivo nei confronti degli sviluppatori? Vorrei iniziare questa risposta con una citazione, faccio una piccola digressione. Non so se tu sai chi sia Walter March. Walter March è un montatore, uno dei più grandi montatori della storia del cinema. Credo che abbia vinto anche diversi Oscar. E’ stato uno dei pochi montatori, uno dei primi, ad utilizzare Final Cut, che è un’applicazione di Apple per il montaggio video. Final Cut dieci anni fa ha avuto un restyling completo, cioè l’hanno riscritta da zero, perché era un’app che aveva una codebase molto vecchia eccetera eccetera. L’hanno riscritta da zero e l’hanno resa un’applicazione molto più orientata per gli youtuber, per quel tipo di mercato, cioè meno per il feature film, cioè per il grande cinema, e molto più per il video più agile, mettiamola così. E allora in un’intervista hanno detto a Walter March, che insomma cosa ne pensa di Apple? Apple ci vuole bene ma non ci ama. Anzi, a noi a Apple piacciamo ma non ci ama. Cioè per la serie, noi siamo… a Apple noi piacciamo perché siamo degli acquirenti, ma non ci vuole bene, non ci ama al 100%. E’ un po’ quello che noi sviluppatori iOS pensiamo di Apple nel rapporto come sviluppatori. Cioè Apple ha come primo focus, vabbè il primo focus di Apple è fare soldi naturalmente. Il secondo è il benessere dei suoi clienti, i clienti paganti, quelli che comprano iPhone, quelli che comprano i Mac, quelli che comprano le app. L’ultimo anello di questa catena del valore sono gli sviluppatori che sono trattati abbastanza male. Le cose stanno migliorando per certi versi, considera che fino a due anni fa c’era una survey su internet che monitorava lo stato della documentazione delle librerie di Apple e praticamente fino a due anni fa il 50% delle delle app di Apple era non documentato, cioè uno doveva andare a tentativi cercando di capire come funzionavano. Adesso le cose sono leggermente meglio, stanno facendo un sacco di lavoro da questo punto di vista, però… ed è una forse un’eredità di Steve Jobs stesso. Cioè Apple ha sempre detto noi come Apple dobbiamo dare il miglior servizio al cliente, cioè fare tutto noi, e quando si aprono agli sviluppatori di terze parti, Apple vede gli sviluppatori di terze parti come terzi incomodi, come dire, questi perché sono qui a rompere le scatole, a inquinare la nostra piattaforma? Per cui il supporto è un po’ è un po’ faticoso. Io per primo dico che la tariffa del 30%, perché una volta tutto quello che passava attraverso lo store di Apple, il 30% se lo tenevano loro, adesso è passato al 15% se non sei troppo grande, dove il non troppo grande significa che non guadagni almeno un milione di dollari all’anno, grazie al cielo. Praticamente io ho sempre detto per me il 30% non è un grande vincolo, mi va benissimo, anzi sono ben contento, se tu ti occupi di arginar la pirateria e tutto quanto mi va anche bene come come strumento. Il problema è che l’App Store di Apple è gestito in maniera un po’ barbina, cioè il principio per cui qualsiasi cosa tu pubblichi sullo store deve essere comunque recensito da uno di loro mi va anche bene, se questa recensione fosse omogenea per tutti gli sviluppatori, se avesse gli stessi parametri di valutazione, cioè nel senso se lo store fosse veramente un luogo protetto dove i protetti sono sia gli utenti che gli sviluppatori andrebbe bene, ma ultimamente non sono protetti né gli utenti né gli sviluppatori, perché ci sono un sacco di app di scam che vengono recensite internamente come positive, per cui magari ti trovi il clone di Wordle che costa 12 dollari al mese ed è palesemente uno scam perché non è l’applicazione vera e propria, però è un clone e passa eccetera eccetera perché a volte sembra quasi che queste recensioni le facciano gli ultimi degli stagisti che devono solo seguire le tre indicazioni base, se queste tre indicazioni base sono superate anche se c’è l’elefante in una cristalleria e nessuno se ne accorge, nessuno lo dice e questi fanno casino. Il motivo per cui Epic se n’è andata dall’App Store è un motivo puramente economico, loro hanno detto noi vogliamo più del 30%, il motivo per cui molti sviluppatori non sono contenti di quelli piccoli, considera che mediamente un’applicazione nell’App Store quando raggiunge 100 dollari è tanto, la maggior parte delle app nell’App Store sono veramente un grande fallimento di mercato e i piccoli sviluppatori, gli sviluppatori indipendenti sono arrabbiati perché voi dite di avere un sistema chiuso perché così è protetto e sicuro eccetera eccetera eccetera ma non è nemmeno protetto e sicuro per cui c’è una sorta di grande contrasto, di grande promesse non mantenute che non fanno bene né l’app, né gli sviluppatori, né gli utenti finali. Detto questo è un sistema che funziona abbastanza ma necessiterebbe di avere una visione esterna, cioè per farti capire la ricerca delle app nell’App Store è complicatissima, difficilmente trovi quello che stai cercando ma trovi qualcosa qualcun altro che ha investito un sacco di soldi in advertising eccetera eccetera con un meccanismo molto più opaco e molto meno funzionante di quello dell’advertising di Google che invece funziona molto bene e la ricerca nel Play Store di Google è molto ma molto ma molto più più ottimizzata. Quello che fanno gli sviluppatori, quello che faccio io è prendere atto di questa cosa e dire ok nel mondo iOS funziona così, lo prendo per quello che è, mi rendo conto che ci sono tutti questi vincoli, che alcuni vincoli sono scritti, alcuni vincoli sono così perché sono così e uno fa la valutazione, mi conviene o non mi conviene, poi uno dice vabbè mi conviene eccetera eccetera. Devo anche essere sincero il 99 per cento delle mie revenue arriva dal mercato Mac e non dalle iOS, non dai telefoni o dagli iPad e io essenzialmente nel mondo Mac vendo direttamente le app nel mio store, cioè i Mac sono meno blindati dal punto di vista della possibilità di installare app con degli store esterni o abbastanza liberamente, io faccio di questa cosa ma non tanto perché non voglio dare il 15 per cento di quello che guadagno a Apple, io sarei ben contento di farlo se mi offrisse un servizio di una certa qualità però le applicazioni per Mac che passano dallo store devono sottostare un sacco di limitazioni e di funzionalità e di policy, nel senso il fatto che magari aggiorno l’app e poi ci vogliono 3, 4, 5, 6, 7 giorni perché questa recensita venga pubblicata e infine le applicazioni del Mac App Store sono craccate nell’arco di 12 secondi dalla maggior parte dei cracker, degli hacker del mondo per cui è abbastanza un po’ come dire lo fai se hai un mercato di base talmente largo che avere delle copie craccate non ti sposta a qualcosa, a me invece sposterebbe ed è successo perché me le hanno craccate in passato per cui tendenzialmente se riesco ad evitare lo store lo evito soprattutto però per il fatto che le applicazioni nello store hanno un sacco di limitazioni di policy che hanno a che vedere con la privacy, con la sicurezza è vero ma a volte anche veramente con una grande rottura di scatole, non sono come quello che dice sono lacce lacciuoli, la realtà è che le applicazioni del Mac App Store devono stare dentro una sandbox che non mi consente di fare chiamate ad applicazioni a linea di comando oppure che per poter accedere a certe cartelle del sistema necessita non soltanto di chiedere l’autorizzazione dell’utente ed è una cosa giustissima ma anche di richiedere delle delle policy di valutazione diverse per cui l’applicazione deve già partire con Apple mi concedi di essere di fare questo questo quest’altro Apple può dire no non c’ho voglia in qualsiasi momento anche da una versione all’altra magari ti autorizza la versione 1.0 e la versione 1.1 sai che c’è stamattina mi sono svegliato così e non lo faccio per cui se posso l’App Store di Mac lo evito come la peste ma più che altro per questi motivi e invece queste notizie che fioccano ultimamente in casa Apple non lo so la nuova gestione della privacy l’apertura ai pagamenti al di fuori dello store ufficiale questi cambiamenti come li vive un indipendente come influiscono effettivamente sul tuo lavoro allora considera che io sono uno sviluppatore molto indipendente il cui core business sono applicazioni che fanno cose e non servizi che fanno cose che sono due valutazioni molto diverse sai servizi sono anche avvantaggiati da Apple stessa perché dice il servizio significa che tu ti abboni a questo servizio e di conseguenza c’è uno stream di revenue continuo e di conseguenza le app che prevedono un abbonamento sono avvantaggiate le mie sono app che sono tendenzialmente pensate per ti piace quello che fa provalo per 8 giorni se ti piace se sei contento allora me la compri buyout cioè una volta per tutte che è un modello di business che piace moltissimo agli utenti un po meno allo sviluppatori però ti devo dire che personalmente a me non per adesso non mi sta dispiacendo per chiusa si apre una parentesi il ciclo di vita delle app delle mie app di circa due tre anni significa che tutti gli aggiornamenti intermedi e di solito ce ne sono tantissimi sono gratuiti le major release e di solito sono dei grandi grandi grandi ridisegni dell’app sono a pagamento ma prevedo comunque una un costo di upgrade cioè nel senso non la paghi da zero ma paghi soltanto l’incremento un po come si faceva tanto tempo fa su sul pc è presente infatti i metodi di cambiamento alternativi adesso sono se dipendessi da apple non lo farebbero mai proprio ma neanche con una pistola puntata alla testa la pistola puntata alla testa ce l’hanno perché certi governi hanno certe certe istituzioni hanno detto ho bisogno questa roba qui non mi va bene e allora apple ha detto vabbè facciamo a modo tuo per dirti in in olanda se non sbaglio le applicazioni di appuntamenti come potrebbe essere miti che quelli per dire devo devo trovare un compagno di vita un compagno solo per una ciulata devono aprire anche a pagamenti terzi apple cosa ha detto sai che c’è va benissimo però noi dobbiamo avere un minimo un minimo di soldi di percentuale per comunque gestire questa cosa e sai cosa han detto i pagamenti sono al 30 per cento di base cioè indipendentemente anche se sei piccolo non c’è più il 15 per cento ma il 30 per cento di quello che passa e di il 30 per cento è il 27 se lo tiene apple e il 3 lo dà al al alente terzo che dovrebbe beccarsi soldi capisci che a questo punto è un po come dire sì sì trovata le leggi ha provato a leggere c’è trovato l’inganno e lo stesso diceva qualcuno c’ha imposto delle regole ma siamo tanto le applichiamo modo nostro per cui io credo che questi cambiamenti arriveranno nell’arco di anni e non di mesi e gli sviluppatori medi guardano questa cosa un po come dire è una partita che non ci riguarda cioè comunque sarà una partita che riguarderà epic mega games riguarderà netflix riguarderà spotify riguarderà questi giganti che che sono aziende da miliardi di dollari noi che stiamo lì a contare 5 euro li guardiamo ma è una guerra tra una guerra loro non non ci riguarda magari tutti faranno cercheranno di fare leva sui piccoli perché siamo in tanti e magari la nostra opinione di massa potrebbe contare ma alla fine infine non c’è guardiamo questa cosa ma è una cosa che non veramente non ci riguarda è un po come guarda come il mercato dell’energia il mercato delle dei trasporti il mercato delle delle infrastrutture sono cose che se il cittadino può in qualche modo influire ma spesso volentieri si tratta di guerre che vengono combattute in altri piani capito e invece altra curiosità completamente diversa scendiamo un po nel dettaglio dello sviluppo del codice in casa apple come il rapporto dello sviluppatore con la documentazione ufficiale e con il resto della community per capirci quando io sviluppo in php ad esempio o dei punti di riferimento ufficiali e di un certo peso diciamo così presso i quali vado a cercare determinate informazioni la documentazione ufficiale del linguaggio dei framework oppure alcuni siti o personaggi molto conosciuti nell’ambiente ma a volte faccio anche molto uso banalmente di duck duck go il quale in buona parte dei casi mi riporta semplicemente su stackoverflow come funziona invece questo aspetto per un dev ios è una bellissima domanda e la risposta è molto semplice allora la documentazione è prettamente scritta secondo me per certi versi è ricca dal punto di vista che ti dice tutte le api che ci sono in alcuni casi è abbastanza carente negli ultimi tempi stanno facendo un grandissimo lavoro di armonizzazione anche di creare degli esempi ma secondo me sia ancora indietro su molte tecnologie di base c’è le tecnologie introdotte recentemente hanno dell’ottima documentazione tecnologie che magari sono state introdotte cinque dieci anni fa hanno un sacco di mancanze per dirti tutta l’infrastruttura audio video audio e video che è stata sviluppata pensa in te con un altro linguaggio di programmazione per cui ha delle api anche abbastanza vetuste e quella è molto difficile da recuperare da parte di apple nativa bisogna riconoscere che appo sta facendo un buon lavoro di semplificazione di entry level per certi versi ma anche di un c’è per il per l’entry level anche per il livello medio perché ogni anno a giugno c’è la conferenza mondiale degli sviluppatori e negli ultimi due anni dato che c’è stata la pandemia questa conferenza non è più live ma è tutto completamente registrata il che significa che ci sono dei video pre pre registrati prima erano tutti la live di solito sono 100 150 sessioni sessioni che durano da 10 minuti all’ora che esplorano dei singoli dei singoli task c’è nel senso cosa c’è di nuovo in questo linguaggio cosa cosa c’è di nuovo in questa api cosa c’è di nuovo in l’audio cioè ci sono un sacco di difficile quelle dell’anno vengono vengono sviscerate e i video sono effettivamente sono molto belli molto ricchi e questi video sono a disposizione c’è tutta la trascrizione e di questi video ci sono degli esempi veramente fatti bene cioè il codice si può scaricare documentatissimo molto ricco e molto è molto facile se lasciamo perdere i first party cioè poi ci sono due o tre guru diciamo che sono che sono veramente dei dei delle grandissime persone che hanno sviluppato hanno sviluppato il loro business sulla comunicazione sul sull’insegnare e tre o quattro ti metterò ti darò il link da mettere nella nota dell’episodio che hanno nella maggior parte dei casi sono corsi gratuiti in alcuni casi sono corsi premium nel senso che c’è tutta una parte gratuita però c’è una parte premium per cui se vi accedi e accesso altre altre altre cose più più ricche più approfondite una delle cose più belle che ho seguito è stato il corso che c’è ogni anno in primavera alla stanford university che c’è il corso di swift tenuto da un ex dipendente di apple una persona veramente geniale simpaticissima che tiene questo corso i corsi e le lezioni sono 15 16 lezioni da circa due ore sono tutte online per cui te le puoi guardare ogni anno vengono raffinate e affinate per mettersi al passo con le ultime tecnologie per cui è sempre più divertente sempre più ricco guardarle ogni anno io me ne riguardo da zero perché sono proprio belle e sono veramente di grande insegnamento a male di questo si c’è sta cover flow il grosso problema che non è un problema è che le tecnologie di apple sono sono state molto come sono hanno cambiato molto nel corso degli ultimi anni perché sette anni fa hanno introdotto un nuovo linguaggio di programmazione che si chiama swift che è molto molto snello è un’erede del c del javascript per far proprio a grandi linee molto molto snello molto molto bello con una bellissima sintassi con tante potenzialità alle closure alle generics ovviamente un sacco di cose fighe ai protocolli e per cui c’è un sacco di cose che sono state poi digerite dal pubblico nel corso di due o tre anni per cui il stackover flow trovi volte del codice che però va bene per una delle primissime versioni di swift e poi magari le cose se sono evolute è abbastanza facile far la migrazione da swift 2 a 3 a 3 a 4 4 5 5 5 eccetera eccetera però è comunque sempre un mezzo sbattimento tre anni fa hanno introdotto un nuovo linguaggio di programmazione di interfacce grafiche che si chiama swift UI che a questo punto cambia completamente il modello di sviluppo delle app da mvvm che ovviamente è migliore per certi versi consente di sviluppare applicazioni più snelle però è fuori da due anni di conseguenza anche il codice che si trova su stackover flow è giovane e c’è un sacco di lavoro da fare c’è un sacco le risorse ci sono è molto facile trovare risorse per del medio livello del basso livello risorse ad alto livello sono molto più difficile ed è molto più a questo punto secondo me talmente ad alto livello che è più probabile ricevere questo tipo di imprinting in azienda dove si strutturano grandi quantità di codice e codice molto complesso codice molto ricco per cui è difficile fare un corso che ti possa spiegare certe cose è una cosa che ti fa abbastanza con l’esperienza però è per certi versi è lo scoglio più duro che io sto affrontando perché sai ti insegnano a fare un’applicazione col database di core data che è un’applicazione di to do cioè nel senso una lista di cose da fare però nella vita le cose sono molto più complicate sono molto più più ricche e anche tutta la componente di programmazione asincrona che è fondamentale nello sviluppo di applicazioni credo tutte le applicazioni sia web che native è quella sì un conto ti dicono questo è una cosa sincrona però tutta la policy di gestione delle miliardi di errori e del policy di correctness di solidità dei dati eccetera eccetera è molto alla fin fine c’è nessuno c’è un esempio pratico che ti spiega sta cosa alla fine sono sono parte di code base che ti devi sviluppare tu e a volte spesso e volentieri se non fai uso di piattaforme già esistenti io penso a firebase di google di mongodb oppure di apple stessa con i cloud e comunque devi comunque lavorarci un sacco e te lo dico perché io personalmente ho dovuto sviluppare un’infrastruttura del genere che non poteva fare uso di tutti questi database distribuiti per policy di privacy e di gestione di dati sensibili perché erano dati medici per cui cose abbiamo dovuto svilupparci un’infrastruttura del genere lato client lato server è stato un bel divertimento ogni tanto dico come cacchio è possibile che sta roba funzioni ma finché funziona va bene così sì certo è una di quelle regole non scritte che molti seguono finché funziona non si tocca mentre per quanto riguarda invece la possibilità di scrivere codice a sincrono trovo che sia una potenzialità enorme ma al tempo stesso per chi come me viene da 20 anni di sviluppo sincrono risulta anche piuttosto difficile da comprendere complicato entrare nella mentalità diciamo così assolutamente devo dire che credo che sia dal punto di dal mondo di che frequenti tu che dal mondo mio l’introduzione dei degli a sinc e degli await ha aiutato moltissimo alla scrittura del codice però c’è sempre oltre la questione di scrittura gestione di manutenibilità del codice che è molto importante credo che è una parte più complicata sia la gestione della creazione di policy nel senso ok questa roba è una cosa che a sincrono può andare bene o male però il problema è che tu devi poter pensare di anzi devi poter pensare di gestire qualsiasi caso perché comunque gli utenti sono bravissimi e troveranno la cosa più assurda e gli capita io abbiamo sviluppato questa applicazione di gestione di dati sensibili a sincrona pesantemente a sincrona e abbiamo scoperto che ci sono degli edge cases che dici non c’era mai pensato nessuno c’era ancora pensata l’abbiamo incontrato a questo punto ti fai la punta alla testa e trovi il modo di di di di arginar la cosa di aggiornare il tuo codice in modo tale che possa essere compatibile con con la follia dell’universo mettiamola così esattamente senti invece parliamo di un argomento di cui non si parla mai negli ultimi anni c’è l’intelligenza artificiale dato che io ascolto tecnopills cioè uno dei tuoi podcast so che hai fatto più volte uso di algoritmi di machine learning messi a disposizione da apple e sempre dalle tue spiegazioni mi è sembrato di capire che l’approccio a copertino sia un po diverso da quello che altri big come google o microsoft hanno in generale ce ne vuoi parlare un po allora tu prima ti dico le cose che io faccio ho sviluppato applicazioni che si occupano della computer vision e della trascrizione dell’audio computer vision significa guardo un’immagine cerco di capire che cosa c’è dentro la classificazione sulla base di alcuni modelli nel senso di tu fai una ci sono due cose nella classificazione generale nel senso c’è una fotografia che cosa c’è dentro in questa fotografia oppure ancora di più nel senso tu fai il training di una di un’applicazione di una di un’applicazione di un modello di machine learning per cui tu insegni al modello a riconoscere un certa cosa mettiamo caso che tu è un’azienda che produce dei dei dei delle parti di ricambio e tu vuoi far sì che quando uno inquadra col telefono una parte di ricambio il telefono ti dica questa è la parte di ricambio col codice x y z e il sito inter dove puoi trovarle acquistarle y z x ok mi sono occupato di queste cose qui e della trascrizione dell’audio nonché della lettura dei testi nel senso in questa immagine c’è questa scritta che cosa c’è scritto questi sono gli ambiti su cui ho lavorato allora il mondo del machine learning è un mondo ovviamente in grandissima evoluzione e si base essenzialmente sul principio per cui grandi quantità di dati vengono processati in maniera piuttosto veloce con una cosa che si chiama che è a metà strada tra codice eseguibile e dati che si chiama modello che insomma l’oggetto che che dovrebbe simulare l’intelligenza umana e questo modello essenzialmente produce una sorta di risultato è un algoritmo mettiamola così che è un algoritmo relativamente semplice che però lavora su quantità di dati abnormi è un po come se tu avessi un polinomio a 0 x 0 più 1 x 1 più 2 x 2 solo che invece di avere tante x ne ha milioni di x perditi per cui è necessario una potenza di calcolo assurda e come si fa a costruire un modello che faccia appunto questa cosa si fa del training in pratica si si presentano a un sistema che costruisce questo polimo questa serie di polinomi i casi giusti nel senso se questa roba qui allora fai così se questa roba qui allora fai così glielo fai vedere 500 mille milioni di volte alla fine questi algoritmi un po imparano a capire come sono fatte le cose veramente sto dicendo delle cose semplificando non di più di piùissimo è chiarissimo per cui c’è questa doppia fase la fase di creazione del modello e la fase di applicazione del modello la maggior parte delle aziende google amazon con con iws azur di microsoft eccetera eccetera mettono a disposizione le delle infrastrutture che consentono a di creare i modelli ma quasi nessuno lo fa in cloud quasi tutti se lo fanno in casa e b di fare l’interpretazione di questi modelli cioè ti dicono abbiamo questi computer della madonna in cloud tu passi l’informazione noi ti diamo l’esaborazione di questa informazione in pratica tu hai vuoi classificare i fiori crei un modello che ha un database di fiori di mille fiori diversi dalle orchidee alle rose a tutte le varie sotto sotto specie e così che tu puoi creare un’applicazione che inquadrando un fiore ti dice che fiore è bellissimo tu fai il training del modello cioè ti costruisci questo modello utilizzando milioni o di un sacco di fotografie di fiori in pratica dice il modello senti questi 500 foto sono un’orchidea queste 500 foto sono una rosa eccetera eccetera eccetera alla fine il modello comincia a capire se alla 501 esima inizio a capire come fu come ha fatto una rosa che cos’è che distingue una rosa un’orchidea eccetera eccetera eccetera l’applicazione c’è l’interpretazione di queste cose le viene fatte in cloud in pratica si crede si prende questo modello lo si carica in un’istanza di qualche tipo e quando l’utente ha l’applicazione questo lo dico con quello che fanno gli altri è scatto una foto la foto viene compressa viene mandata velocemente a questi server questi server fanno la classificazione della foto dice questa è un’orchidea e viene giù il risultato in maniera asincrona però nel senso quasi in tempo reale apple ha un approccio differente nel senso dice noi non vediamo i server noi ti diamo un telefono che ha un motore di elaborazione di intelligenza artificiale abbastanza cazzuto per cui l’elaborazione la fa in locale e di conseguenza tu fai il tuo training del modello in qualche modo costruisci questo modello e poi il modello lo cariche nella tua applicazione e si occupa la tua applicazione di fare questa cosa così non c’è il passaggio in cloud sono due politiche ovviamente che stanno in antitesi quella del cloud ha lo svantaggio che necessita di connessione e lo sviluppatore deve pagare le istanze in the cloud che se fai sia un’applicazione installata da 10 persone non costa niente se un’applicazione installata da 10 milioni di persone deve pensare a un modello di business perché se no i costi ti esplodono e il vantaggio del cloud è che i modelli possono essere raffinati in maniera molto più agile rispetto al modello sul telefono e in più la potenza di elaborazione è infinita per cui c’è nel senso è un po come avere una server una render farm tutta per te ogni volta che devi fare l’analisi di una fotografia nella maggior parte dei casi questa cosa non è necessaria per due motivi 1 i modelli sono sempre gli stessi cioè a meno che tu non ti costruisci un modello tuo i modelli sono essenzialmente gli stessi anche quando ti costruisci un modello tuo spesso e volentieri si tratti strate di customizzazione di modelli tipo se vuoi fare un modello che riconosce i fiori non hai bisogno di fotografare 10.000 orchidee 10.000 rosi 10.000 gladioli 10.000 viole tutto quel cacchio cioè nel senso non devi tirar fuori un milione di foto l’importante è che tutti i basi sul modello già esistente che ha una sua infrastruttura che è stata sviluppata nel corso degli anni sono modelli open source e alla fin fine aggiungi delle informazioni a questo modello per cui spesso e volentieri ti bastano 10 20 50 foto che è una cosa più gestibile per fare 10 foto di orchidee ce la fai ancora fare 10.000 comincia a diventare una cosa che appannaggio soltanto di alcune grandi aziende ecco la maggior parte dei modelli sono costruiti in questo modo si sono copie spuderate anche copia spuderate nel senso si prendono questi modelli che sono open source e si utilizzano direttamente apple non fa non fa mistero che utilizza mobile net che è uno dei modelli più diffusi di classificazione delle immagini e robe simili per cui alla fine le cose si assomigliano tutte e lo stesso agli stessi google con testo e flotti mette a disposizione queste cose anche per fare il training direttamente in un sito web per dire che i passi 10 fotografie capisce come è fatta una fotografia per cui da lì in poi sa come è fatta una rosa sa come è fatta un’orchidea la differenza è effettivamente quella e poi ha investito molto sull’intelligenza artificiale molto più di quanto uno si aspettasse perché tutti i processori nuovi hanno metà dell’area del computer chip solo dedicata alla machine learning in più nel senso nei momenti di massimo stress possono utilizzare la componente della gpu della scheda grafica per fare machine learning e anche la cpu cioè per cui fondamentalmente il 90 per cento della superficie del chip è dedicata a fare questa cosa e non ho mai capito perché perché le applicazioni poi non si sono ancora viste né dal punto di vista degli sviluppatori terzi ma neanche dal dal punto di vista di apolo di apple stessa si la gestione della fotografia computazionale effettivamente è un minimo migliora certi versi ma non ho ancora visto niente di che mi faccia dire tutta sta potenza viene veramente utilizzata oppure no forse la l’ultima versione che praticamente cambia la messa a fuoco e gestisce la sfocatura delle immagini naturale simulando aperture più più elevate di quelle che si possono raggiungere fisicamente con un telefono l’ho vista mi ha abbastanza impressionato ma non è ancora cioè come dire mi sembra una sorta di quasi un demo piuttosto che di un oggetto che possa essere utilizzato davvero per cui la mia la mia perplessità come sviluppatore ma forse la mia mancanza di conoscenza è che c’è una potenza della madonna in questi telefoni che ancora lì che dormiente e sto ancora aspettando che arrivi qualcosa i due anni di pandemia hanno rallentato molto l’aggiunta di feature soprattutto dal punto di vista del sistema operativo io devo dirti che fra esattamente un mese ci sarà la nuova conferenza degli sviluppatori mi auguro che ci siano delle nuove api delle nuove funzionalità non tanto per la classificazione delle immagini ma quanto per la generazione delle immagini le ci sono modelli c’è alcuna classe delle dell’applicazione dell’intelligenza artificiale è quella di costruire cose a partire dai dati per dirti passi un’immagine in bassa risoluzione ti aumenta risoluzione passi un’immagine di una persona che ha che non ha il trucco gli mette il trucco ti mette a posto come se fosse fotografata da ben bene pure una persona che è illuminata male l’illumina bene cioè io mi auguro di vedere questo tipo di applicazioni nella prossima generazione del sistema operativo perché sarebbe molto divertente e sarebbe divertentissimo per me svilupparci oggetti sopra perché li utilizzerei io in prima persona bene interessante staremo a vedere anche le evoluzioni magari ce ne potrai parlare in futuro o ci potrei aggiornare sul gruppo telegram intanto io ti ringrazio per essere stato qui con noi mi ha fatto davvero molto molto piacere averti ospite perché parlare con te è sempre un’esperienza interessante e per concludere ci vuoi dire dove ti possiamo trovare sul web seguirti eccetera allora prima di tutto è stato molto bello per me sono molto contento di essere riuscito di essere qui e vorrei che tu ricambiassi venendo par ospite nella mia trasmissione a dire cose invece un po’ diverse e ovviamente mi piacerebbe poterti incontrare così da poterti ricambiare la cena la cena che tu mi hai offerto a casa tua certamente dove mi si può trovare beh allora la mia piccola azienda si chiama ulti.media lo trovate sul sito ulti.media così potete vedere le cose che faccio io vorrei offrirti un bel 20 per cento di sconto a tutti i tuoi ascoltatori metterò il coupon ti darò il coupon da mettere nelle note di questo episodio mi rendo conto che la maggior parte di quelli che ti ascolta probabilmente un mac non ce l’ha per cui è solo per amicizia però per amicizia sono ben contento di fare grazie altrimenti mi trovate su twitter io sono vabbè insomma sono alxge anche questo metto ti do le note delle note dell’episodio questo questo link uso twitter in maniera molto compulsiva nel senso che non vado a dire mettiamo la cocaina nella coca cola come ha detto qualcun altro di nostra di nostra conoscenza però tendenzialmente non lo uso per fare personal branding cioè per cui tendenzialmente seguo persone che mi piacciono e a volte dico quello che penso spesso volentieri anche dal punto di vista tecnico però sono lo vivo come un social network che non è molto sociale ma lo vedo più come una rete eccetera eccetera eccetera altrimenti non saprei altro ma se giustamente forse il mio mio podcast io ho un podcast che è quello che faccio quasi tutte le settimane che si chiama tecnopills che è una sorta di racconto di flusso di coscienza che io chiamo flusso di coscienza digitale che è una sorta di oggetto una sorta di paperella io parlo a voce alta perché così metto insieme i miei pensieri quando parlo di algoritmi di sviluppo di applicazioni ed è interessante perché spesso volentieri nel podcast non mi metto limiti e ci sono anticipazioni di quello che farò e che verrà fuori fra sei mesi fra otto mesi poi è un secondo podcast di musica questo esce una volta ogni due mesi circa perché è un casino poi trovare gli impegni incastrare gli impegni eccetera eccetera dove cerco di raccontare delle storie con la musica io cerco un tema e poi dopo lo elaboro con le canzoni che si chiama mdb summer radio e non so il titolo è la cosa meno seo del mondo ma c’è una storia dietro e infine con una volta al mese esce un podcast di enologia io sono solo il conduttore perché di vino ne capisco quando c’è da bere ma non più di tanto in cui parliamo facciamo veramente delle analisi abbastanza approfondite del vino con uno dei migliori sommelier d’italia dei più famosi che è marco barbetti e con un personal chef che si chiama gabriele palermo e il nostro obiettivo quello di creare degli ottimi abbinamenti abbiamo iniziato partendo dal piatto per trovando il vino adatto la terza stagione invece prevede che abbiamo contattato siamo stati ben lieti di ricevere delle bottiglie bottiglie anche importanti e sulla base di queste bottiglie importanti ci costruiamo invece la il piatto per cui un approccio molto diverso è bene su queste le cose su cui mi si può trovare altrimenti o mi trovate anche sul canale telegram di pensieri in codice ogni tanto dico la mia ma spesso volentieri ascolto e ascolto con le orecchie aperte con gli occhi spalancati perché spesso volentieri trovo un sacco di gente che dice un sacco di cose interessanti di cui essendo un sviluppatore così e così capisco tendenzialmente la metà va bene sei sempre troppo gentile alex io ti ringrazio tantissimo a nome mio e di tutta la community di pensieri in codice per essere stato qui con noi per tutte le informazioni che ci hai dato per il regalo che c’è fatto e chiunque lo desidera trova tutto in descrizione bene sinceramente io non ho molto da aggiungere a quanto detto da alex se non che sono molto molto soddisfatto di questa chiacchierata che ha dato risposta a tante questioni che mi frullavano in testa e delle quali ero molto curioso spero come al solito che l’argomento dell’episodio sia stato di tuo interesse sul sito di pensieri in codice trovi tutti i miei contatti o meglio ancora il link al gruppo telegram dove possiamo discuterne insieme con gli altri membri della community ma anche con lo stesso alex se vuoi fargli qualche altra domanda e prima di lasciarti ti ricordo che pensieri in codice è un podcast indipendente interamente prodotto da me nel mio tempo libero e con le mie risorse personali quindi se apprezzi quello che faccio e se sei arrivato fin qui come al solito immagino che tu lo apprezzi sul sito pensieriincodice.it mi raccomando con due i trovi tutti i metodi per inviarmi il tuo contributo in tal modo mi dimostrerai che tutto il mio impegno ha un qualche valore per te e perché no mi aiuterai anche a coprire i costi di attrezzature e abbonamenti mensili oggi in particolare voglio ringraziare paola che ha inviato un contributo di 10 euro tramite satisfei e che mi scrive lo so che è poco un po alla volta beh paola grazie mille innanzitutto perché non è affatto poco se tutti gli ascoltatori di pensieri in codice donassero un decimo di quanto hai fatto tu potremmo facilmente ad esempio rimuovere la pubblicità o addirittura assumere qualcuno che gestisca non so un account social ma anche perché questo genere di gesti sono attestati di stima e di apprezzamento e mi incoraggiano a proseguire in questo impegno che mi sono assunto che ti assicuro non è per nulla banale e poi ringrazio per le recensioni su apple podcast luca che scrive bellissimi approfondimenti da seguire assolutamente complimenti grazie luca e complimenti a te per gli ottimi gusti bicho bitcoin che scrive bellissimo podcast per informatici puri grazie bicho dal tuo nome deduco che ti faranno piacere alcuni episodi che sto programmando che usciranno dopo l’estate ma non dirlo a nessuno mi raccomando e infine marco introini che scrive podcast molto interessante che ogni programmatore o più in generale ogni amante della tecnologia dovrebbe ascoltare grazie valerio per il tuo impegno grazie a te marco e grazie delle bellissime parole per concludere non dimenticare che tutti gli episodi di pensieri in codice sono disponibili sulle maggiori piattaforme e app di podcast e basta io ti ringrazio per l’ascolto ti do appuntamento al prossimo episodio e ti ricordo che un informatico risolve problemi a volte anche usando il computer

Nascondi