Pierre Marty
Développeur iOS
iPhone / iPad

Pierre Marty

Développeur iOS (iPhone, iPad)

Sidebar
Menu

MapKit Swift et IGN

Pour essayer Swift 1.2 sur un exemple avec une carte et des donnée publiques de l'IGN.
Le projet est sur GitHub:
https://github.com/pierrem/MapDemo
Il est sans doute plein d'imperfections, c'est mon premier essais un peu sérieux avec Swift.
On s'habitue vite à ce langage agréable…

Sur le site Alpeslog :
http://www.alpeslog.com/cartographie-avec-donnees-publiques/


Un CMS + une appli iOS native ?

L'idée est de développer un exemple de site Web avec un CMS (WordPress, Joomla ou Drupal) et une application native iOS (iPhone, iPad) permettant d'accéder au information du site avec une interface native. Cela permettrait de proposer une solution simple et économique à des demandes d'application iOS connectées.
Il faut pouvoir créer des web service avec une interface type HTTP/JSON permettant à l'application native d'accéder aux informations de la base de données du CMS. Je recherche donc comment mettre cela en place avec les principaux CMS (WordPress, Joomla!, Drupal)

la suite…

J'ai choisi Joomla! pour commencer. Ia date de release de Drupal 8 semble un peu incertaine…
Le CMS est relativement facile à utiliser, finalement plus simple que la solution d'édition hors ligne que j'utilise depuis des années (RapidWeaver).
Par contre j'imaginais qu'il y avait un mécanisme permettant d'accéder facilement aux infos sous forme JSON plutôt que HTML, mais je n'ai pas encore trouvé la solution. Il doit bien exister une extension pour ça, autrement il faudra coder !

Test Joomla!

la suite de la suite

J'ai finalement choisi WordPress, qui offre un API REST. A tant qu'à faire, j'ai fait un POC de client en Swift.
Il est sur GitHub :
https://github.com/pierrem/WordPress-API-Demo

L'article sur mon nouveau site WordPress:
http://www.alpeslog.com/wordpress-ios-native-app/

Swift ?

Les langages de programmation évoluent, et Objective C a 30 ans. Il s'est modernisé en douceur (gestion mémoire très évoluée, blocks, closure).
ObjC est souvent décrié par les programmeurs qui découvrent la syntaxe particulière de ce langage. On s'y habitue rapidement et en général on finit par aimer ce langage, assez simple et explicite (par rapport à C++ par exemple).

Apple a crée une surprise en présentant Swift durant la WWDC 2014, et surtout en en faisant directement un langage majeur pour le développement dans l'univers Apple, à parité avec ObjC et à terme destiné à le remplacer.
C'est un langage moderne, avec une syntaxe agréable, un système de contrôle de types plus rigoureux que ObjC. Il présente des closures bien intégrées, la gestion des type génériques (templates C++ ?), des valeur par défaut pour les paramètres, des fonctions imbriquées (à la Pascal ou Java) etc.

Le langage est compilé de manière très efficace (compilateurs LLVM). D'après Apple on gagne en performance par rapport à ObjC (contrairement à des langages comme Java, JavaScript ou Ruby ou on perd entre un peu et beaucoup de performances)


Une WebApp ?

Le développement d'une WebApp est quelque chose de nouveau pour moi et il y a beaucoup de choses à découvrir.
Développer des applications natives iOS (et OSX) demande un temps d'apprentissage des technologies (ObjC, Cocoa, XCode etc.),mais la voie est relativement balisée par Apple. Dans le domaine des WebApp, rien de tel, alors j'ai choisi au feeling:
- JavaScript (vs DART ou CoffeScript)
- Angular JS (vs Ember, parce qu'il faut bien choisir, et que son support par Google donne confiance ?)
- Bootstrap et ses adaptateurs Angular (le plus utilisé ?)
- node.js
- Yeoman (yo, Grunt, Bower), mais j'avais commencé sans. Cela constitue une chaine de développement qui permet une certaine rigueur (vérification du code JavaScript) et un certain confort (mais ce n'est pas XCode ou Visual Studio !)
- Chrome et son debugger
- et puis le logiciel "Charles", qui me sert de proxy pour développer le code JavaScript et les pages HTML en local, tout en communiquant avec une base distante en HTTP (cross domain)

Ensuite, le but est de packager la web app obtenue avec PhoneGap pour avoir des applications "natives".
On n'aura pas la fluidité d'une application native, mais le coût de développement ne devrait être qu'une fraction du coût du développement de 3 applications: Web + iOS + Android !

RTS

Je viens de passer 3 mois à la Radio Télévision Suisse pour participer à l'évolution de leurs applications iOS, en particulier l'adaptation pour iPad des applications RTSinfo et RTSsport.
screen568x568

Ces nouvelles applications RTSsport et
RTSInfo sont maintenant disponibles sur l'AppStore.

RTS-info

De nouvelles Applications sur iPad…

Une application de présentation de produit

Screenshot 2013.05.20 11.46.26
avec de l'interractivité et de la vidéo…

Des applications cartographiques

Screenshot 2013.05.20 11.42.59

Utilisant le MapKit plus des tuiles spécifiques, bitmap ou vectorielles…

Bluetooth LE, iPhone et Arduino

La question du pilotage de différents objets en Bluetooth revient régulièrement. Pour résumer, il y a 2 situations:
- La création d'un périphérique Bluetooth "standard", qui va demander la signature d'un contrat spécifique avec Apple et la certification du périphérique. MFI, ie Made For iPhone. cf http://mfi.apple.com/faqs
- L'utilisation de Bluetooth Low Energy. Le développement se fait de manière standard, les API sont disponibles. Bluetooth LE est implémenté à partir de l'iPhone 4S et de la dernière génération d'iPad.
Pour s'amuser, ou préparer une maquette, il y a une solution simple, les modules Arduino. Ce sont de petites cartes électroniques bon marché (30 euros), comportant un micro contrôleur et un peu d'électronique pour le faire fonctionner. Le système de développement est open source et gratuit, de même que le design des cartes. Il y a des entrées analogiques et numériques, et des sorties analogiques (PWM) et numériques.
Pour mes tests, j'ai aussi acheté une carte fille ("shield" dans la terminologie Aduino) permettant de communiquer en bluetooth LE (35 $). Il y a une librairie pour le soft coté carte Arduino, et un framework coté iOS.
Ça fonctionne et cela permet à un développeur logiciel comme moi de piloter des objets du monde réels (led, servo moteurs etc…) à partir de son iPhone.

Arduino: http://arduino.cc

Le shield BTLE: http://www.makershed.com/BTLE_Arduino_Shield_p/mkrbl1.htm

Ci dessous: la platine Arduino avec le shield BTLE et une simple led sur la plaquette d'expérimentation.


BTLE

ZMS version 2.0

La toute nouvelle version de ZMS, avec son interface complètement revue est disponible depuis ce matin.

ZMS-icon
ZMS est l’application de messagerie mobile nouvelle génération qui vous permet d’envoyer et recevoir des messages texte, des photos, des vidéos et des fichiers audio gratuitement. Vous pouvez également demander à vos proches où ils se trouvent en un clic ou encore envoyer des messages géo-localisés et programmés. Vous pouvez ainsi surprendre, partager et communiquer avec vos proches au bon endroit et au bon moment.
ZMS sur l'App Store

zms-1 zms-2 zms-3 zms-4 zms5

Light painting



neon

Une petite application de dessin style light painting sur iPad pour un évènementiel…
Elle permet de choisir une photo comme fond, de dessiner dessus et d'envoyer le résultat par mail.

ZMS sur l'App Store

ZMS
ZMS sur l'App Store


C'est une application destinée à remplacer les SMS, en y ajoutant plein de fonctionnalités…
http://www.inzair.com/

Je m'occupe de la version client iPhone…

iRad

iRad, une application permettant de détecter les radiations.

Développée par François Antier, un ami.


iRad

Tapinoma Reloaded !

Avec Nicolas Scheffer nous nous sommes amusé à republier quelques applications réalisées dans le cadre de la société Tapinoma.

Beezcard reloaded ! Gratuitement sur l'App Store

Beezcard

Gypsy Queen reloaded ! Gratuitement sur l'App Store

GypsyQueen

Application iPad

BeeMyLove
Je viens de terminer le développement d'une application iPad destinée à être utilisée par les distributeurs de la joaillerie Chaumet.
L'iPad avec son format magazine, son autonomie et sa facilité d'utilisation peut être un support de présentation sachant rester discret.
A l'origine, cette application était développée en Flash. Pour avoir une
interactivité satisfaisante, elle a été réécrite en ObjC/Cocoa Touch, en utilisant entre autre Core Animation. Son ergonomie a été repensée spécifiquement pour l'iPad.

Exposé

En mai dernier j'avais fait un exposé au Macintosh Alpes Club de Grenoble, sur le développement iPhone. A défaut de l'article que j'avais prévu d'écrire un jour, voici les diapositives de cette présentation.

Flash sur iPad ?

La question du portage d'une application Flash sur iPad revient régulièrement.
J'ai testé la solution Adobe (Adobe Flash CS5 Iphone Packager). La solution fonctionne mais la version actuelle pose un sérieux problème de performance.
Elle est donc à l'heure actuelle uniquement utilisable pour des applications simples et optimisées pour ce type de déploiement.
L'autre solution est de récupérer les médias et de réécrire le logiciel en ObjC. Ce sera aussi l'occasion de repenser l'interface utilisateur pour l'iPad:
- la précision d'un doigt sur l'écran est inférieure à celle d'une souris, d'autant que le doigt en question masque ce qu'il désigne !
- pas de "survol" (mouse over) donc pas de tips (info bulles ?)
- pas de clavier physique. Quand le clavier virtuel est affiché, il occupe la moitié de l'écran, donc il faut en tenir compte si on veut que la saisie reste agréable.
Menu