[Résolu] CoreData ou php/mySql

busterTheobusterTheo Membre
mai 2015 modifié dans API UIKit #1

Hey everybody,


une question à  la con.


 


J'ai bien lu ce post ancien, et je continue malgré tout à  m'interroger.


 


Je suis aussi développeur sur le web, et donc la question est la suivante :


 


Dans l'appli que je tente de réaliser, il s'agit de stocker de nombreuses informations.


 


Dois-je privilégier coreData (c'est ce que je fais actuellement), ou m'orienter vers du php/mySql, avec tout ça stocké sur un serveur ?


 


Perso, coreData me va bien, enfin, je commence à  comprendre, et à  le faire fonctionner.


 


Merci d'avance.


Mots clés:

Réponses

  • Avec l'arrivée de CloudKit, je dirais que CoreData c'est bien :)


  • CéroceCéroce Membre, Modérateur
    Je ne comprends pas la question parce que Core Data utilise une BdD SQLite " donc forcément locale " et tu nous parles de php/mysql.
    (Je joue l'idiot, mais je veux pousser ta réflexion).
  • busterTheobusterTheo Membre
    mai 2015 modifié #4

    Ah cool Geoffrey, par contre chui pas trop cloud.


    Chui plutôt de la vieille école, anti-terminaux et anti-données externalisées.


     


    Mais je sais, je suis un peu bloqué.


     


    Surtout pas trop le temps et l'argent pour les tests avec risques et beaucoup d'angoisse de passer du temps à  réparer, et donc de ne pas avancer sur mes boulots. Installs, réinstalls, mises à  jour, recup sauvegardes disDur, etc.


     


    En plus, bien que j'ai eu le courage, enfin l'obligation (pour xCode Version 6.1.1 (6A2008a)) de passer à  Yosemite sur mon 27pouces et mon macBookPro (en 2 temps, évidemment), je n'ai fait, depuis, aucune mises à  jour. Je sais, ça craint, je vais le payer un jour ou l'autre. On appelle ça la procrastination.


     


    Je suis accro à  mon code... Pov'Garçon.


     


    Mais il faudra bien que j'y passe, je sais, j'attend de finir mes tafs, mais c'est sans fin. En gros je rigole de moi, mais c'est pas grave.


     


    En tout cas, je note avec plaisir tes encouragement à  continuer sur coreData.


    Je ne sais pas trop pourquoi c'est bon pour cloudKit...


  • Ouais Céroce, je sais que coreData utilise SQLite, mais c'est transparent pour moi, et en plus, comme tu le dis, c'est local - J'imagine que ça veut dire que c'est dans le mobile (je suis sûr que je déconne).


     


    Et ça m'arrange de ne pas avoir à  faire du php/mySql, et surtout de gérer encore un serveur. (avec des http ou des requêtes...).


    Je fais déjà  des sites web, et j'aimerai bien ne pas mélanger mes serveurs avec les applis.


     


    Mon rêve serait de ne plus faire de sites, j'en fais depuis le début du web, et en tant que passionné de code, je kiffe plus (même si c'est chaud) sur les applis.


  • Donc, en gros, coreData à  donf...


  • LeChatNoirLeChatNoir Membre, Modérateur

    voilà  :)


  • coooooool


    :p   :D   :p


  • CéroceCéroce Membre, Modérateur
    Disons que je pense que tu te poses une mauvaise question. D'abord il faut savoir si tu as besoin d'un stockage local ou distant.

    Par exemple, rien que sur un stockage local, tu as d'autres options que Core Data:
    - utiliser SQLite directement
    - enregistrer en JSON, Plist ou XML.

    Ensuite, même si tu restes bien sur un stockage local, as-tu besoin d'une synchro entre appareils ? Veux-tu utiliser iCloud ou Dropbox pour partager les données ?

    Sur un stockage distant, un serveur web n'est pas la seule option. Il y a par exemple des services comme Parse ou Azure.
  • Ah Céroce, merci pour ces précisions, j'apprend des trucs que je ne connaissais pas : Parse - Azur (c'est du winDaube, ça).


     


    Pour mon appli, c'est l'utilisateur qui charge des photos à  partir de prises de vues de l'appareil photo de l'iPad, ou de dropbox, ou bien de la photothèque de l'iPad.


     


    Pour l'instant, je n'ai fait que la partie à  partir de la photothèque de l'iPad, et je stocke le nom (string) dans coreData.



    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
    let imagePickee: UIImage = info[UIImagePickerControllerOriginalImage] as UIImage

    //Scale photo
    let screenSize: CGSize = UIScreen.mainScreen().bounds.size
    var newImageScaled: UIImage = scaledImageWithImage(imagePickee, size: CGSize(width: screenSize.width, height: screenSize.height))

    //L'image sélectionnée va dans le UIImageView
    self.lastTappedImageView?.image = newImageScaled

    //Adresse répertoire photos
    let paths: NSArray = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
    let documentsDir: NSString = paths.objectAtIndex(0) as NSString

    //On fabrique le nom de la photo
    var dateFormat = NSDateFormatter()
    dateFormat.dateFormat = "yyyy-MM-dd-HH-mm-ss"
    let now: NSDate = NSDate(timeIntervalSinceNow: 0)
    let theDate: NSString = dateFormat.stringFromDate(now)

    if lastTappedImageView == frontalPatientImageView {
    // On fabrique le nom de la photo
    self.frontalPatientFullURL = NSString(format: "Frontal\(nomTextField.text)-%@.png", theDate)

    // On fabrique le chemin total
    let pathFull: NSString = documentsDir.stringByAppendingString(self.frontalPatientFullURL!)

    // On fabrique l'image
    let pngFullData: NSData = UIImagePNGRepresentation(newImageScaled)

    // Stockage du nom de la photo
    pngFullData.writeToFile(pathFull, atomically: true)
    }

    etc...
    }

    Le test sur la photo tapée est parce que l'utilisateur dois choisir 5 photos. J'ai déjà  résolu ce problème grâce à  ce post. A ce sujet, je n'ai toujours pas creuser les précisions de AliGator, qui sont un peu du haut vol pour moi (les clochers, etc...), mais ça va venir.


     


    Enfin, en gros le mec prend des photos et doit les stocker dans son iPad, pour ensuite travailler dessus (inclinaison, recadrage, mesures, etc.). Donc en local, et pas de synchro, cloud, ... Dropbox ne sera que pour prendre, et non pas redonner (enfin, j'espère, ça change tous les jours).


Connectez-vous ou Inscrivez-vous pour répondre.