Débuter dans le développement iOS

a marqué ce sujet comme résolu.

Bonjour à tous,

JE sais que j’ai trois guerres de retard, mais je réfléchis parfois à me lancer dans le développement iOS.

J’ai déjà lu plusieurs noms: apache cordova, ionic, native script, xamarin… l’idée derrière ces plate-formes semble être de commencer par développer en web, puis ensuite de convertir par je ne sais trop quel magie en app mobile.

Comment ça se passe exactement ? Il semble que quelque soit le choix, l’étape finale nécéssite un mac et de compiler avec XCode. Or je n’ai pas de mac. Est-ce que je dois nécessairement investir dans un mac ou est-ce qu’il y a des solutions windows (ou éventuellement linux) ? A-t-on réellement accès à toutes les possibilités offertes par le web (API JS/HTML5, CSS3, …) ?

Puis après viennent encore les ensuite:

  • Comment je peux tester mon app sur l’iPhone ? Sachant que j’ai la dernière version stable d’iOS (12.x)
  • Comment ça marche après pour mettre son travail dans l’appstore ? Qu’est-ce que les gens de chez Apple regardent ? Est-ce que faire accepter une app est compliqué ? Qu’est-ce qui peut faciler ou au contraire compliquer l’acceptation ?

Qu’est-ce que vous me conseillez ? Avez-vous de bonnes ressources pour bien commencer ? Quelles sont les limites de ces plate-formes ? Y a-t-il de meilleures alternatives ?

Est-ce que je devrais oublier iOS et plutôt me concentrer sur android parce que c’est 36 fois plus simple ? Je n’ai pas d’appareil sous ce système, et à priori ceux que je vise ont préférentiellement des iPhone plutôt que des téléphones android.

Evitons si possible les gros lours genre Java et C#, et les méga frameworks genre react et angular, mais sinon je peux coder en à peu près n’importe quel langage: JavaScript, python, C++…. S’il faut apprendre Swift je ne pense pas que ce serait un problème. JE veux surtout éviter Java et C# parce que je ne compte pas installer Visual Sudio (Code) ni Eclipse pour ce projet.

De préférence des solutions gratuites, ou au moins raisonnablement abordables pour un particulier qui compte à priori réaliser des apps gratuites. 50€ sans doute OK, mais certainement pas 1000€.

Les points cruciaux dans l’app que j’aimerais tenter de faire sont:

  • Appels à des API HTTP(S) (pas forcément REST)
  • WebSocket
  • Audio+micro
  • Accessibilité avec le lecteur d’écran du système, en l’occurence VoiceOver dans le cas d’iOS

L’approche web me plaît assez, notamment à cause de websocket… mais ça ne me fait pas peur de réimplémenter le protocole à partir d’un simple socket TCP s’il le faut (je l’ai déjà fait en C++).

Merci pour vos réponses !

+0 -0

Salut,

Je ne peux pas répondre à toutes tes questions, mais je peux parler un peu à propos des technologies qui permettent de faire du dev web et 'convertir' en application.

Je vais te parler de Cordova/PhoneGap, xamarin n’étant pas pareil (xamarin ne permet pas de coder en pure HTML/CSS/javascipt). Il me semble qu’il en est de même pour ionic, mais je ne connais pas bien.

Cordova/PhoneGap permet de créer une application en utilisant les technologies web : HTML, CSS, Javascript. L’application n’est alors pas native. En gros, pour fonctionner, quand l’utilisateur lance son application (créée avec Cordova), un navigateur va exécuter le code de l’application. C’est basiquement un site web local. Cependant, sur Android/Desktop/iOS, quelques limitations de navigateur sont levées (cors par exemple), et il est possible de créer des plugins natifs utilisables depuis le javascript.

Il faut noter que pour une application disposant de plusieurs pages, il faut tout gérer en Javascript, c’est une mauvaise idée de créer des liens entre les pages (comme on le ferait dans un site local).

Cette solution à l’avantage d’être multiplateformes : à ma connaissance, une même application peut fonctionner avec peu de travail supplémentaire sur : desktop (avec electron), browser (nodeJS), android, iOS.

L’expérience montre toutefois qu’il y a un certain travail à effectuer pour adapter à chaque plateforme (le navigateur utilisé n’est pas le même). Un exemple simple est que chrome mobile a connu des changements au niveau des événements (touch par exemple), ce qui implique un certain travail pour prendre ça en compte.

Pour faire appel à des API, il ne devrait pas y avoir de problème, du moment que tu ne cherches pas à modifier certains headers (tel que le referer) de ta requête.

Pour le reste, tu peux toujours créer des plugins natifs

Bonsoir,

Donc si je comprends bien, Cordova/PhoneGap est au mobile ce que Elektron ou NW.js est au desktop ? Avec tous les avantages et inconvénients de cette approche que tu cites très bien. Lever les petites limitations ch### du browser est effectivement une des raisons pour laquelles je cherche à faire une app.

Ce qui veut dire pour l’accessibilité que ça peut être soit totalement accessible (autant qu’une application web peut l’être), soit totalement inaccessible (si le composant utilisé comme browser ne l’est pas). Si ça utilise Safari sur iOS ça devrait être bon, mais je suppose que tu n’as pas la réponse à cette question… comment savoir ? Y a-t-il des apps très répandues dont on est sûr qu’elles utilisent PhoneGap ?

Faire des plugins natifs, ben justement si je choisissais cette approche c’est pour éviter de devoir en faire. Aucune idée si un mac est réellement nécessaire pour finaliser une app donc ?

Merci pour ces quelques réponses en attendant d’en avoir des plus précises; au moins maintenant j’ai compris le principe de base, on obtient donc du vrai faux natif.

+0 -0

Je ne suis pas sûr pour iOS, mais de ce que je sais, ça utilise le nav (en fait le moteur de rendu) de l’appareil. Sur iOS, ça doit être celui de safari. Sur android, c’est le plus souvent chrome, mais sur certains appareils, ça peut être autre chose.

Et c’est exactement ça, Cordova/PhoneGap est le pendant mobile de Electron (même si maintenant on peut exporter en electron avec Cordova)

Pour finaliser une application iOS, quelle que soit la technologie que tu utilises, il te faudra à un moment un mac (c’est le seul moyen de créer une appli iOS, malheureusement). Mais il doit sûrement y avoir des solutions en ligne pour éviter ça.

Et du coup, ouais, c’est pas du natifs, même si on peut faire quelque chose qui y ressemble (ou alors à coup de plugins)

Et j’en profite aussi pour parler d’une autre techno web pour faire des applis : https://developers.google.com/web/progressive-web-apps/

Pour les applis utilisant de telles technologies (Cordova/PhoneGap), on le remarque vite quand on a un peu d’expérience (l’interface ressemble à du web, ou ne fonctionne pas exactement comme le natif). Sur android, il est également possible d’ouvrir l’archive installée, et regarder si on y trouve des fichiers js (et potentiellement des fichiers css/html).

Je viens de regarder sur mon tel les applis qui semblent utiliser ces technologies (ou qui en tout cas les utilisent au moins en partie) :

  • CodeAnywhere
  • Boutique Amazon (j’ai trouvé un plugin Cordova dans leur appli)
  • AirBNB (semble utiliser du JS, mais pas l’architecture classique de Cordova)

Il faut aussi noter que certains n’ont pas attendu ces techno pour développer leurs applis en web. Les exemples les plus frappants sont :

  • Facebook : pendant un certain temps, l’appli Facebook était en web (et ça se sentait)
  • Steam : Sur ordi ou sur tel, c’est du dev web (en gros l’appli semble simplement charger le site web distant)

Attention toutefois, je n’ai pas d’iOS, j’ai regardé dans des applis android, je ne peux pas te garantir que c’est la même chose sur iOS (même si je vois pas l’intérêt d’avoir utilisé ces technologies dans ce cas)

Pour finaliser une application iOS, quelle que soit la technologie que tu utilises, il te faudra à un moment un mac (c’est le seul moyen de créer une appli iOS, malheureusement). Mais il doit sûrement y avoir des solutions en ligne pour éviter ça.

Ah, zut, c’est bien ce que je craignais.

Et j’en profite aussi pour parler d’une autre techno web pour faire des applis : https://developers.google.com/web/progressive-web-apps/

C’est peut-être une étape intermédiaire que je devrais considérer. Parce que si je comprends bien en fait il ne manque pas grand chose pour que mon site web soit une PWA.

Pour les applis utilisant de telles technologies (Cordova/PhoneGap), on le remarque vite quand on a un peu d’expérience (l’interface ressemble à du web, ou ne fonctionne pas exactement comme le natif)

Bizarrement je me suis déjà fait ce genre de réflexion… notamment en voyant des apps avec un bandeau de pub google, bizarrement confinés dans ce qui ressemble tout droit à des iframe.

Merci.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte