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 one.
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

> Sebi
> [1] https://vimeo.com/86978742
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/aerogear-dev

aerogear-dev mailing list