Categorie
News Azienda

Dylan Yerly e il suo stage su iOS e iPhone programming

ELbuild stage progetto LeonardoIl Programma Leonardo è un progetto dell’Unione Europea che ha fra i suoi obiettivi quello di promuovere la formazione di laureandi e diplomandi, mettendoli a contatto con realtà aziendali anche di paesi diversi da quello di origine. A ELbuild fra settembre e dicembre abbiamo ospitato Dylan Yerly, un ragazzo svizzero classe 1993 che da noi ha fatto uno stage sullo sviluppo di applicazioni iOS ed in generale sulla programmazione di app per iPhone/iPad. Alla fine della sua esperienza gli abbiamo chiesto di scrivere un breve post relativamente ai 3 mesi trascorsi con noi.

Il post è in francese ed in inglese, ma pubblicarlo ci sembrava un buon modo di salutare Dylan ed augurargli buona fortuna!

J’ai du apprendre l’objective-C pour créer une application iPhone dont le but est de pouvoir gérer les dépenses d’un groupe lors d’un évenements tel que des vacances ou autre. Il m’a donc fallu apprendre ce langage car je ne connaissais que Java et avais de très basique connaissances en C. Il a fallu que je m’adapte à la syntaxe utilisé pour l’Objective-C qui se fait avec des crochets pour séparer les différentes expressions alors qu’en Java il faut utiliser des points. Certes il y a la possibilité d’utiliser les points mais pas dans tous les cas et je trouve que les points sont plus facile d’utilisation que les crochets. Toujours au niveau des différences il y a la structure d’une classe qui se fait avec un fichier dit “header” et un fichier dit “implementation”. Il y a aussi la gestion des classes. En Java je m’étais habitué à utiliser le pattern MVC2 qui séparait la Vue du Worker avec entre les deux la liaison, le Controleur. Alors quand dans cette application chaques vues fait son propre travaille et il y a un controleur qui gerent qu’elle vue doit etre afficher.

Un autre point essentiel lorsque l’on programme pour iPhone c’est que l’on doit gérer nous même la mémoire. C’est à dire que l’on doit retirer de la mémoire les objets que nous n’utiliserons plus ou alors d’abord les dupliquer pour un autre usage. Il a donc aussi fallu que j’apprennes à faire cela.

Au niveau des similarités on peut noter la facon d’écrire les boucle “for” ainsi que les conditions “if- else”.

Xcode est vraiment un bon outils de mon point de vue. Il est pratique est plutot facile à manipuler. Avec l’aide integré d’Apple que l’on à, ainsi que des exemples à télécharger pour faciliter la compréhension. J’aime aussi le fait que l’ont puisse placer des breakpoints alors que l’application tourne. L’interface graphique pour la création de vue est plutôt bien faite.

Sur iPhone la base de données la plus commune est SQLite. Elle est assez facile d’utilisation et il existe plusieurs programmes qui permettent de la gerer.

Pour finir je dirai que je suis content d’avoir eu l’occasion d’apprendre l’Objective-C car c’est toujours sympa de savoir comment faire une application pour iPhone en plus d’être utile.

Anche in inglese:

I had to learn Objective-C to create an application. The main goal of this application is to manage the expense of a group during an event like holidays. I had to learn this language because before I only knew Java and the base of C. I had to learn the syntax, that is with brackets instead of dot, as in Java. We can use dot in Objective-C but not always and I think that dot is easier to use than brackets. The structure of a class is different too. We use 2 files, one is the header and the other the implementation. I was used to use the MVC2 pattern in Java. In this application each view does its work and has a separate controller.

In Objective-C we have to manage the memory by ourself. We have to kill variables or duplicate it for another use and kill it. So I had to learn it.

The syntax to do the “if-else” conditions and the “for” loop is the same as in Java.

Xcode is a good tool to develop. It’s useful and easy to use. There is an Apple help that we can use and exemples of code to download. I like the fact that we can put breakpoints while the application is running. The graphic interface is pretty easy to use.

The most common database on iPhone is SQLite. It’s really easy to use it and there is some others applications to manage the database.

I’m happy to have had the opportunity to learn the Objective-C langage because it’s nice and useful to know how to program an iPhone application.

Personalmente vorrei concludere questo post un po’ atipico per il blog, con le mie considerazioni circa la validità di un approccio formativo come quello che Dylan riceve in quella che il corrispettivo svizzero delle nostre superiori (in particolare di un istituto tecnico). Un paio di settimane fa infatti abbiamo avuto modo di parlare con un professore fra quelli che seguono la classe di Dylan (è venuto a trovarlo dalla Svizzera a Pistoia…) che ci ha spiegato come l’ultimo anno di scuola sia diviso in due semestri, di cui uno trascorso in placement presso un’azienda (anche straniera) ed uno impegnato in un progetto di grande attinenza col mercato. Fra le tecnologie che vengono insegnate a ragazzi di 16-18 anni ci sono i database relazionali, le tecnologie Java SE e Java EE, i principi di design di un software ad oggetti ed altri argomenti di grande valore per la formazione professionale che negli istituti tecnici italiani vengono nel migliore dei casi “abbozzate”.

A livello personale Dylan è sicuramente oltre la media, però vedere che un ragazzo di 18 anni è stato in grado di inserirsi in un ambiente di lavoro e produrre in maniera indipendente qualcosa di funzionante mi ha stupito abbastanza, soprattutto per la naturalezza con cui ha appreso strumenti (SVN, Redmine, Xcode) e tecniche  di sviluppo che gli erano estranei.

Conosco persone uscite dalle nostre facoltà che avrebbero faticato di più per ottenere lo stesso risultato.

Di Luca Adamo

Luca Adamo si è laureato con lode in Ingegneria delle Telecomunicazioni all'Università degli studi di Firenze ed è dottorando in Ingegneria Informatica, Multimedialità e Telecomunicazioni, sempre nella stessa facoltà. Le sue competenze tecniche includono lo sviluppo software, sia orientato al web che desktop, in C/C++ e Java (J2EE, J2SE, J2ME), l'amministrazione di macchine Unix-based, la gestione di reti di telecomunicazioni, ed il design di database relazionali.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *