Guestlecture I gave to the students ICT at Odisee, explaining the app development process, how we do certain things at Small Town Heroes, and how we implement QA throughout our process.
9. So you have this great idea for an app
Slideshare Search: “From idea to app”
10. So you have this great idea for an app
• Evaluate your idea
• Is it a good idea?
• Will it help people?
• How’s the competition doing?
• Is there a market?
• Plan your app
• Features
• Define the MVP
• Design
• App Flow (Wireframes)
83. b. Native App: Use WebViews
Host some of your views online so that you can change it anytime you want.
84.
85.
86. Memory Game = HTML
We embed this HTML game in a webview contained in the KetnetJr App
87. Native-Webview Communication with JockeyJS
https://github.com/tcoulter/jockeyjs
// Send an event to JavaScript, passing a payload.
// payload can be an NSDictionary or NSArray, or anything that is serializable to JSON.
// It can be nil.
[Jockey send:@"event-name" withPayload:payload toWebView:webView];
// If you want to send an event and also execute code within the iOS app when all
// JavaScript listeners have finished processing.
[Jockey send:@"event-name" withPayload:payload toWebView:webView perform:^{
// Respond to callback.
}];
// Listen for an event from iOS and log the payload.
Jockey.on("event-name", function(payload) {
console.log(payload);
});
88. 2. Build an API and feed your app with it
Feed your app the data it needs, whenever you want
97. Example
div(ng-switch="'featureInvitefriends' | setting : false")
div(ng-switch-when="false")
.item.item-divider
.item-info(ng-bind-html="'CREATE_CHANNEL.SHARE.EXPLANATION' | translate")
a.item.item-icon-left(ng-click="doShareGroup(id, title, share_url)")
i.icon.icon-add
| {{ 'CREATE_CHANNEL.SHARE.LABEL' | translate }}
div(ng-switch-when="true")
.item.item-divider
.item-info(ng-bind-html="'CREATE_CHANNEL.INVITE.EXPLANATION' | translate")
.item.item-divider
ion-item.friend(ng-repeat="friend in friends.list", ng-click="doInvite(friend)")
img(ng-src="{{ friend.thumbnailURL }}")
.name {{ friend.firstName }} {{ friend.lastName }}
Let your views show or not show a feature depending on a setting
107. Git Branching Strategy
• Develop on master
• Result = “beta”or “staging” builds
• → Send these to your beta testers
• Promote master to release
• Result = “production” or “appstore” builds
• → Send these to the App Store / Play Store / …