En fait je fais une application de live streaming (si ça te parle un peu). Vu que c'est bien complexe j'ai mis 4 mois à faire la partie "moteur", je m'attaque enfin à la partie GUI de l'application qui va interagir avec ce moteur.
Vu que je suis en total autodidacte je suis un peu pommé, je n'ai codé que des gui en java avant ^^'
Vu devant ton incompréhension jme suis dit que j'avais raté quelque chose... En effet je viens de voir que dans l'IB on peut choisir l'orientation. Donc j'ai pas encore testé mais je suppose que du coup ça va grandement faciliter la chose :p
Oui, ça va être beaucoup plus simple pour faire les interfaces ^^
Désoler d'embêter à nouveau...
pour le moment j'ai 2 vues, une pour le login, et une pour afficher ma camera
Le problème c'est que pour afficher ma caméra correctement quand je lance l'application via xCode je dois faire ça :
http://pastebin.com/6xVtZNRr
Mais quand je ferme avec le bouton et que je reviens sur l'application j'ai mes coordonnées x et y inversées (enfin dans le bon sens plutôt je pense)
Tu as une idée du problème ?
"Mais quand je ferme avec le bouton et que je reviens sur l'application j'ai mes coordonnées x et y inversées (enfin dans le bon sens plutôt je pense)"
Je ne comprends pas ce que tu veux dire.
Par "inversées", tu signifies :
y vaut x et x vaut y ?
les coordonnées x, y sont bonnes mais en portrait ?
Un mix des deux ?
Dans ton code, est-ce a dire que ta hauteur est ta largeur et vice-versa ?
Ma piste serait le moment où tu invoques cette méthode. Tu l'invoques au moment du ViewDidLoad ?
Je ne comprends pas ce que tu veux dire.
Par "inversées", tu signifies :
y vaut x et x vaut y ? > yep exactement
les coordonnées x, y sont bonnes mais en portrait ? > oui c'est ça :/
Dans ton code, est-ce a dire que ta hauteur est ta largeur et vice-versa ? > oui, mais quand je ferme/relance (sans xcode) les valeurs redeviennent bonne (cad en mode paysage)
et oui la 1ere fois c'est dans le viewDidLoad et ensuite dans le appDidEnterForeground
ahhh t'es un chef !
J'ai changé de place le code de viewDidLoad dans viewWillAppear et ça marche impec
C'est mauvaise pratique le code dans viewDidLoad au final ? C'est pas la premiere fois que j'ai des soucis c'est cette méthode (appelée trop tôt ?)
Alors, ça fait plus d'un an que je n'ai pas développé pour iOs.
J'ai déjà eu pas mal de soucis avec avec ces méthodes, qui sont en fait appelées à divers moment de la "vie" d'une interface.
Elles sont invoquées à différent moment de la vie d'une vue. Voir leur documentation pour savoir à quelle moment, mais il peut être nécessaire d'utiliser d'autres méthodes d'affichage. De mémoire, viewDidLoad est invoquée après la création des objets, mais avant la prise en compte de l'affichage.
viewWillAppear est invoquée après la création des objets et après la prise en compte de l'affichage, mais avant l'affichage lui-même.
Ca n'a pas énormément changé depuis un an je crois, et je dev sur iOS 6.0 pour le moment histoire de toucher quand même quelques personnes
En tout cas tu me dépanne trop rapidement et efficacement (ca change du streaming@0 ressources), je t'enverrais l'appi gratis si elle sort payante et que ça t'intéresse ![]()
De rien pour le dépannage, c'est à ça que servent ces forums.
Pour le moment, tu ne demandes pas des trucs trop poussés niveau interface, le domaine que je préfère, donc ça va
Pour l'appli, pourquoi pas, même si je n'ai pas d'iPhone :p
Petite question du jour !
je m'attaque à la partie la plus délicate de l'UI (car ça va être chaud niveau ergonomie)
bref, pour le moment j'ai décidé de creer des listes de contacts (amis, famille, boulot...) pour pouvoir notifier mes contacts quand je stream (histoire de pas faire un live solo
)
Je vais essayer de commencer simple avec un bouton qui affiche une liste de contact (chaque liste est un bouton, a l'apui on envoie des sms de notification). Pour le moment je créer tout dynamiquement et ça donne ça :
Bien sur on voit qu'il y a un soucis sur la taille de la liste, donc je vais devoir ajouter du scrolling, plein de bidules graphiques pour que le titre se démarque ect ect.
Es ce que je dois persister à faire tout dynamiquement (code ici : http://pastebin.com/6SxB6MF2 ) ou es ce qu'il vaut mieux creer une nouvelle vue custom (je suppose que ca doit être faisable) et la rajouter tout bêtement dans l'écran à l'apui du bouton menu 2
J'espère avoir été à peu près clair
PS : J'utilise ce projet pour faire des tests sur l'UI, je devrais recevoir de l'aide d'un graphiste ![]()
Je vais te rajouter de la complexité, je pense...
Pour les catégories, je t'aiguillerai sur l'API de contact d'Apple (Address Book) pour récupérer les catégories de l'utilisateur et ainsi les afficher dynamiquement. Je pense que tu joues déjà avec. N'ayant pas assez joué avec un iPhone, je ne sais pas si l'utilisateur peut créer des catégories custom, mais je le pense. Ne pas oublier de gérer le cas des catégories vide (en soit, c'est pas grave, c'est juste moche de cliquer sur bouton pour se retrouver avec une liste vide).
Je pense que tu pars dans une mauvaise direction par contre, en voulant faire un menu transparent par-dessus. Je dirai que ce serait une bonne possibilité pour Android, mais je n'ai pas le feeling que ça rentre dans les guidelines d'Apple.
A mon sens, le plus pratique pour l'utilisateur est de pusher un nouveau contrôleur avec la liste des contacts de la catégorie, avec une sélection qui se fait au toucher et un envoi de partage par bouton. Il faut penser autant aux petites listes contenant 5 personnes (facile a gérer et afficher) qu'aux listes contenant 200 personnes (je veux un Xavier, donc je dois tout scroller => il faut mettre en place le saut aux lettres pour palier à ce souci).
Une bête liste avec le composant qui va bien et un poil de design dessus devrait suffire, je pense.
En soit, la démarche de partage est plus complexe avec ma proposition (tout sélectionner + appui sur un bouton, donc 2 appuis au minimum pour un partage), mais c'est plus naturel à mon sens que, pour partager à plusieurs personnes la même chose, sélectionner les personnes et ensuite partager "en un coup". Surtout qu'Apple incorpore une créa graphique par défaut pour signifier "partager" (comme Android, et sans doute BlackBerry et Windows Phone).
Par "sms de notification", j'espère que tu signifies juste "notification". Ton appli va avoir un peu de mal à percer en envoyant des SMS plutôt qu'en utilisant le système interne des notifications, je pense notamment aux rares forfaits iPhone avec SMS couteux... et par défaut, les utilisateurs sont frileux avec les applications envoyant des SMS "à leur insu". De plus, je pense que ce sera plus facile pour toi de gérer ça avec des vrais notification qu'avec des SMS (tu gères la réception comme tu veux).
Ps : attention à bien tester sur terminal de temps en temps. InterfaceBuilder est pas mal... mais son rendu est parfois autre que celui du simulateur ou du terminal.
wow grosse réponse ^^'
je vais te répondre a chaud sur certain points :
c'est un test pour le moment, je trouve le rendu final tout de même interessant :
![]()
l'intérêt ici étant de pouvoir filmer tout en configurant l'app
Ah je ne connais pas encore ce truc là, dans tout les cas la fonction "basique" sera juste un envoi de mail/une notif facebook. L'idée c'est que dans le message tu aura une url pour matter le stream du mec. Je suis pas sur que ça marche avec les notif mais je vais creuser du coup
![]()
Pour le reste j'y réfléchis
J'ai pas beaucoup de recul et en plus le design ne repose pas vraiment sur moi, j'essaye juste de trouver un truc élégant/ergonomique pour un prototype
Pour le transparent, ok, je n'avais pas du tout cette idée en tête.
Pour le coup, oui, faire un menu par-dessus en transparence est plus adapté et plus ergonomique.
Les notifications sont des "alertes systèmes" relayées par Apple et envoyées par un serveur Apple à la demande d'un autre serveur : le tien. Ca oblige une certaine architecture, ainsi qu'une certaine souplesse (pouvoir changer le fait de recevoir ou non des notifications).
Le point intéressant est que tu peux, dans une certaine mesure, adapter les comportements à la réception.
Documentation : https://developer.apple.com/notifications/
Par exemple, un utilisateur de ton application reçoit une notification, se présente alors deux scénarios :
- il est dans ton appli : dans ce cas, tu peux rediriger vers le visionnement du flux de l'autre
- il n'est pas dans ton appli : dans ce cas, tu peux rediriger vers ton appli, l'ouvrir à la bonne vue et lancer le visionnement du flux.
Ceci, dans le cas où ton application fait autant de la lecture que de l'écriture de flux. Je ne sais pas vers quoi ton lien redirige dans ce cas-là, donc je ne peux pas dire si c'est réellement adapté ou pas.
Remarque : il est aussi possible de ne pas suivre la notification.
Par contre, ces notifs ne peuvent être reçues que par des utilisateurs iOs (bon, y'a moyen de faire du X-platform aussi, mais c'est un peu plus complexe... et ça ne t'intéresse pas, du moins, pour le moment).
Pour des partages de liens via réseaux sociaux, ce n'est absolument pas adapté par contre. Il y a diverses bibliothèques tierce de partage, mais ton flux sera obligatoirement brisé (demande l'authentification pour partager)... quoi que... avec une authentification OAuth, ça pourrait peut-être passer, je ne connais pas trop ce protocole mais peut-être permet-il de donner une sorte d'autorisation à ton application.
La personne qui se chargera de l'ergo aura un bon défi pour le coup :D
Trouver une solution élégante de partage dans ce cas-là n'est pas facile.
Ps : et attention à iOS 7 cassant tout les guidelines graphiques établies... on va sans doute toucher un petit pactole pour refaire les applications à cause de ça.
Voilou que je rentre de vaccances et voici iOS7 qui m'attends...
Il y a des bonnes habitude de dev à prendre pour gérer plusieurs modèle/OS différents ?
Mon application est dev à la base pour iPhone5 iOS6, mais iOS7 apporte quelques fonctionnalité sympa. De même certaines fonctions ne fonctionneront que sous iPhone5 je crois (alors que l'appli restait tout à fait compatible iPhone4S avant... :/)
Là, je ne peux pas donner de détails par contre.
On est impacté par ça, et il faut faire plusieurs choses :
- vérifier les interfaces utilisateurs : beaucoup de composants natif changent et rendent donc certains look absolument dégueulasse
- fournir les nouveaux artefact graphique : l'icône est maintenant en 120x120 au lieu de 114x114
- compiler avec le SDK iOS 7 et le dernier XCode : Apple refuse les compilé iOS 7 sans les nouvelles icônes par exemple
- pour le support multi-version : je dirai une instruction préprocesseur permettant de chopper la version de l'OS et agir en conséquence
bon bon bon
J'en chie toujours avec les interfaces, c'est vraiment pas mon truc tout ça :'(
Ce que je veux faire :
1) un écran avec 2 champs de texte (mail/password) et 2 boutons (ok/creer un compte)
2) le bouton OK envoie l'utilisateur sur l'écran principal de l'app
3) le bouton creer un compte envoie sur un écran qui possède un formulaire light pour remplir 3 info, et quand c'est ok on revient sur l'écran 1).
Pour transitionner de 1) à 2) ça marche très bien - par code (presentModalViewController
ou grâce à un "segue modal" -
En revanche pour transitionner de 1 à 3 j'ai mon formulaire qui s'affiche, mais l'aussi l'écran 2 en background O.O'
Et j'ai remarqué que ça se produisait pile au moment ou je liais mon ViewController (graphique) à une classe .m
Sérieux je comprend rien à la logique des écrans sur iOS ![]()
double post : la honte totale, en fait c'est parce que j'ai mal nomé ma vue principale - la 2e, appelée ViewController - et j'ai fait hériter ma vue numéros 3 de ViewController au lieu de UIViewController... ![]()
Règle très importante dans le monde de la programmation : toujours faire attention à ne pas faire de collision de nom ![]()
On parlait d'une règle de nommage dans le bla-bla, ça peut être un exemple en faisant adopter une ![]()
C'est mon premier projet iOS (et plutôt conséquent en plus) c'est au moins la 3e fois que je fais des refactorings en tout genre et le résultat actuel est vraiment loin d'être parfait (même si j'ai réussi à faire quelques classes sympa et réutilisable - particulièrement un client pour une api REST - dont je suis fier
)
Tu as bossé un peu avec les notifications push ? je viens de lire le guide Apple en diagonale et ça à l'air d'être assez galère à mettre en place (certif SSL, licences à prendre..) - par contre j'ai vu aussi qu'il y a pas mal de service externe qui proposent des API simplifiée -