0 Replies Latest reply on Feb 19, 2014 3:47 AM by Sébastien Blanc

    Re: [forge-dev] [aerogear-dev] iOS Scaffolding

    Sébastien Blanc Newbie

      On Wed, Feb 19, 2014 at 9:11 AM, Corinne Krych <corinnekrych@gmail.com>wrote:



      On 18 Feb 2014, at 18:05, Sebastien Blanc <scm.blanc@gmail.com> wrote:


      Hi Folks !


      While I was watching Matzew's screencast[1] about using the AeroGear iOS

      Template (which bootstrap/help to create a new iOS project) I was thinking

      about pushing the concept even further.


      Wouldn't it be nice to be able to scaffold a complete CRUD Native iOS

      app ? And of course by using the bullets we already have  :  Forge.


      You would generate server and client side at once?



      Well, the iOS generation will be just one specific forge command, the rest

      are just "existing/vanilla" forge commands (entiies creation, REST

      endpoints creation)



      The idea would be to have the same stuff as the HTML5 Scaffolding

      plugin/addon but instead of generating JS and html files we generate *.h

      and *.m files (and of course a complete iOS app structure). The general

      workflow would stay the same : create a JEE project, generate entities,

      generate REST endpoints and scaffold the client.


      So basically all we would have to do is to write those templates (+ some

      code to write to the correct location / create the skeleton).


      I would start with an app generated with iOS template for simple Pipe, and

      then add to it. See my questions below.


      I will be glad to start on this but I would need some help from the iOS

      gurus for one thing : having a clean iOS CRUD App  from which I could

      reverse engineer/extract the templates. This app, while staying simple,

      should contain all the possible use cases : String, numbers, boolean, Date

      but also some relation between entities  (1-to-1, 1-to-many) :


      With Pipes and Stores, we use more a Key/Value approach. Not sure what you

      have in mind to represent relation.


      Well, not sure how it is implemented in iOS but for instance when you

      choose a team, a list of players should also be retrieved.



      In term of UI what do you want to see?

      first screen: Team TableView with static table cell, Players and

      Tournaments cell link to second screen TableView

      second screen: Player TableView with a list of player displaying only

      name, selecting a player will go to third screen Player details

      third screen: Player Details static table view with date display etc...


      Then we might need a descriptive/configurable way of saying to forge this

      is my main screen, on that list display 'player name' etc...

      What's your view on that?



      We could do like the grails html5 scaffold plugin : the main screen

      contains a list of the entities, when you select an entity by default you

      go to the list view and in the bottom bar you have a button to create a new


      When a entity entry is selected in the bottom bar you can : edit or delete



      I started with this simple idea :

      Team {

        name : String

        hasMany : Player

        hasMany: Tournamenent // many-to-many



      Player {

      name : String

      dateOfBirth: Date

      injured: boolean

      hasOne : Team



      Tournament {

      name: String

      price : number

      hasMany: Team





      The gist is here https://gist.github.com/sebastienblanc/9074932


      So, if anyone would like to create this app, I could start from there

      with a first draft. I will also try on my side but my objective-c skills

      are not really good enough right now


      team work



      I think that could be a very cool feature.


      A last very important remark : you can reread this message and replace

      iOS with Android because once we got it shaped for iOS we could do exactly

      the same for Android.


      make sense








      aerogear-dev mailing list





      aerogear-dev mailing list