Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Building An
Open-Source iOS App
Wojciech Adam Koszek · http://www.koszek.com · ! wkoszek
Silicon Valley Mobile Developers ...
Building An
Open-Source iOS App
Wojciech Adam Koszek · http://www.koszek.com · ! wkoszek
Silicon Valley Mobile Developers ...
Today's talk is about
Sensorama
Open Source Sensor Platform for Data Science
http://www.sensorama.org
As I talk...
Visit website
http://www.sensorama.org
Install...
...on App Store
Quick Q/A
to the audience
Developers of
iOS or Android?
Favourite
Open Source?
Have you ever
Contributed to
the Open Source?
How many
Apps submitted
to the Apple or
Play Store?
Do you
Plan to publish
an App?
Do you
Plan to publish an
Open-Source
App?
My agenda
6 parts
Questions and discussion
afterwards
6 parts
Questions and discussion
afterwards
OK to interrupt and disagree!
Motivation
Why/how/who/what/when
Design & App Concept
First app look and feel
Usability tests
How people liked it?
Impleme...
Motivation
Why/how/who/what/when
Design & App Concept
First app look and feel
Usability tests
How people liked it?
Impleme...
Motivation
Why/how/who/what/when
Design & App Concept
First app look and feel
Usability tests
How people liked it?
Impleme...
...and convince you that
doing OSS development
is something your
should try
My background
Motivation
1
SETI...
...for Sensors
Data science research
Data science research
Nice to be able to use your own data for your
education
"Product Manager"
Exercise
Dealing with users, their
feedback, design and look,
code, etc...
Real-world "app"
experience
Very different from
UNIX stuff I'm used to
Open-Source
Development Exercise
Open-Source
Development Exercise
Open code design, development and
maintenance done in GitHub
Making practical stuff is a
Great way to learn
From 0 to...
Design and
App concept
2
General idea
Sensor data recorder
Tap to start recording
Tap to stop recording
Easily export data out of
the phone
Just e-mail the file to the
user
Open data format
Open data format
Everyone can open and parse the
data
JSON
Looked at other similar apps
"Good artists borrow, great artists steal"
Voice
recorder
Recording interface
Apple's
Voice
Memos
Recording interface
Clock
Nice Table Views
WWDC
App
Nice Table Views
Podcast
App
Decent colors/views
Decided to use 3 screens
As simple as that!
Early prototypes
Paper is much better
Very easy way to iterate
No need to draw much
of complex stuff
Just rectangles, squares and circles
Picking tools?
Picking tools?
For Open-Source they must be
reproducible + automated
Started with designing in
InkScape
Started with designing in
InkScape
Android
Started with
designing in InkScape
Too much work for early design



Too few people use it to make it practical
Open Source: less
availability for design tools
There are some, but most of designers don't use them
Commercial tools:
much better for now
You probably already
have them
Keynote
Some design/prototyping inspiration Apple's
"Fake It Till You Make It"
WWDC presentation
https://developer.apple.com/video...
Some design/prototyping inspiration Apple's
Designing for Future Hardware
WWDC presentation
https://developer.apple.com/vi...
PowerPoint
Software I paid for
Affinity Designer
Affinity Designer
Not enough community yet. VERY promising
Affinity Designer
Not enough community yet. VERY promising
Flat rate pricing
Affinity Designer
Not enough community yet. VERY promising
Flat rate pricing ($50)
NO scripting yet....
Graphic
Graphic
(used to be iDraw)
Graphic
(used to be iDraw)
Nice and simple
Graphic
(used to be iDraw)
Nice and simple
Scriptable (uses http://jstalk.org/)
Powerful but WEIRD
No real ecosystem (temp...
Software I recommend
Adobe Creative Suite
Adobe Creative Suite
If $50/month is OK with you
Adobe Creative Suite
If $50/month is OK with you
All their tools work well within the
suite
Sketch
Sketch
Somewhat popular recently
Sketch
Somewhat popular recently
Easy
Sketch
Somewhat popular recently
Easy
Flat pricing ($50/once)
Sketch
Somewhat popular recently
Easy
Flat pricing ($50/once)
Some scripting!
Sketch
Somewhat popular recently
Easy
Flat pricing ($50/once)
Some scripting!
Winner for now!
Sketchtool for
command line interface
Sketchtool for
command line interface
My artwork = 1 sketch file
Sketchtool for
command line interface
My artwork = 1 sketch file
https://github.com/wkoszek/sensorama-artwork
Rendering is
completely automated
./regen.sh
Updating is
completely automated
./update.sh
git commit ../sensorama-ios
Let me know how your
flow works like!
OSS truth about design
tools
OSS truth about design
tools
Imperfect for GitHub work (binary formats)
Usability
tests
3
Asking people to tell you how
to make stuff work is great
Users getting confused:
great feedback for you
Users give a lot of "I
don't get it" feedback
Users give a lot of
"I don't get it" feedback
Especially for a geeky app like this
See my YouTube channel "Building
Real-World iOS App"
https://github.com/wkoszek/sensorama-ios
Implementation
4
1st version
Android!
Android tools - fine for
smaller OSS projects
Bigger projects: you
feel like Java/Gradle
compilers should be
3-5x faster
Android tools - fine for
smaller OSS projects
M
ain IDE not
Open-Source
Gradle (build system)
= Open Source
Android vs iOS
Tools
Android vs iOS
Tools
Tie
Android vs iOS
Tools
Tie
Too much XML
Android vs iOS
Tools
Tie (XCode = Android Studio in problems)
e.g.: Too much XML
Android vs iOS
Tools
Tie
Too much XML
Open Source
Good and BAD parts
5
Good stuff
A lot of functionality
A lot of functionality
for FREE !
Sensorama is using
23OSS modules
Too many to
mention them all,
but lets looks at
what I've put into
it quickly
Fabric/Crashlytics
Must have for
debugging
NSLogger for
convenient
debugging
Realm for
data model
AWS SDK
for storage
Auth0 for
authorization
Mailgun for
e-mail
handling
BZIP2 for
very good
compression
InAppSettings
for the
settings screen
All this stuff is
Open Source!!!
Just go on GitHub and
search for things you
need
I have 2
takes on it
Take 1
Without OSS
building app like
Sensorama wouldn't
be possible
Take 2
Using only my
own stuff would
make it more fun
Using only my
own stuff would
make it more fun
but would take more time
Using only my
own stuff would
make it more fun
but would take more time
or NOT?
Take 3
Use it
"as expected"
and you'll be fine
If you deviate from
normal use case, you're
completely alone
Cool thing
Basically $0 for
code development
Many companies
offer tools for FREE
to Open-Source
projects
e.g.: Auth0 has a nice,
fully-featured version of
their product available
to Open-Source projects
You project is OSS?
No need to pay for GitHub or Travis-CI
JetBrains gave me
their tools to try out
for free too
Some lessons
learned
OSS modules:
CocoaPods
Repository for all
cool iOS stuff
CocoaPods is great!
CocoaPods is great!
Sort of
CocoaPods is great!
Sort of
Takes your XCode project and modifies it
CocoaPods is great!
Sort of
Takes your XCode project and modifies it
in ... unreadable ways (XML)
CocoaPods is great!
Conclussion 1
Conclusion 1
You need to know how to use it well
CocoaPods is Ruby
CocoaPods is Ruby
Podfile is like Gemfile
CocoaPods is Ruby
Podfile is like Gemfile
Use specific version of the modules
CocoaPods is Ruby
Podfile is like Gemfile
Use specific version of the modules
Will help you stay out of trouble
CocoaPods is adding 

more complexity
CocoaPods is adding 

more complexity
and dependency on network, GitHub and other people
repositories
CocoaPods is adding 

more complexity
and dependency on network, GitHub and other people
repositories
CocoaPods is adding 

more complexity
and dependency on network, GitHub and other people
repositories
Matters if you work ...
Conclusion 2
Conclusion 2
Commit files from Cocoa
Conclusion 2
Commit files from Cocoa
At least you'll be able to see what changes
Might be tons of MBs of code, but at
least you can "git diff" it
Some modules are
hundreds of lines of code
Conclusion 3
My next project will use Carthage
Carthage
Carthage
Building you frameworks which you
later integrate
Conclusion 4
Most stuff just works
Most stuff sometimes works
1st Android version was using
Parse SDK
1st Android version was using
Parse SDK
Shut down
Travis-CI
Travis-CI
Great and free continuous integration
solution!
Travis-CI
Great and free continuous integration
solution!
Stuff changes fairly often
Travis-CI
Great and free continuous integration
solution!
Slow
and sometimes out of date
Other stuff needs monitoring
Other stuff needs monitoring
3rd parties you depend on become your
"failure chain"
Be prepared for a lot of documentation
reading
(all following images have been made by other great people who put it on im...
Conclusion 5
Update stuff only when necessary
Updates are when the most breakages
happened
Easy to get help from companies
Harder from volunteers/free projects
How to communicate?
Do due diligence, be
clear and post exact data
Remember:
volunteers!
Report bugs in code
and documentation
Talk to people
Help with sample
code
Done is better than
perfect
Other than that -
business as usual
If there is documentation
BAD stuff
(all following images have been made by other great people who put it on imgur.com)
You must do your homework before
asking
But also ask early to understand
if you're doing the right thing
A LOT of work
Using Fastlane for iOS
Single-command build and
deploy to Fabric and AppStore
Pain to get to work
(Ruby dependencies breaking)
but GREAT once it works
Harder than non-OSS
projects
Others are looking, so you want to
get to a certain decent code quality
Easy to publish too much
(e.g.: your API keys)
Easy to publish too much
(e.g.: your API keys)
Regenerating = painful
Prepare to unexpected
breakages
Follow your vendors
Example of Apple's 2-
factor authentication
Summary
6
Star Sensorama on
GitHub
http://www.sensorama.org
Q/A
Building An
Open-Source iOS App
Wojciech Adam Koszek · http://www.koszek.com · ! wkoszek
Silicon Valley Mobile Developers ...
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Upcoming SlideShare
Loading in …5
×

Building an Open Source iOS app: lessons learned

301 views

Published on

Building an Open Source iOS app: lessons learned

Dec 12, 2016, Hacker Dojo (Santa Clara), 6pm

In this talk I'm going to talk about lessons learned from building Sensorama (http://www.sensorama.org), an Open Source sensor platform for data science. The main theme of the talk will be Open Source: what is great about it, what is bad and how you must become a part of the Open Source community to really move quickly and benefit from it. For this project, I did both the code and the design, so you'll have a chance to see how solo-developer deals with time/feature constraints, which tools I've used and what my approach towards development in this mode is. In other words: I'll tell you what I did to stay sane. If the iOS development were a walk in a dark city park, this talk may turn out to be your flashlight. If you like it, star it at GitHub: https://github.com/wkoszek/sensorama-ios

Agenda

https://www.meetup.com/svmobiledev/events/235836893/
Materials

https://github.com/wkoszek/talks/tree/master/svmobiledev2016
Some links from the slides

Fake it till you make it presentation https://developer.apple.com/videos/play/wwdc2014/223
Designing for Future Hardware https://developer.apple.com/videos/play/wwdc2015/801/
References

WWW: http://www.sensorama.org
GitHub (code): https://github.com/wkoszek/sensorama-ios
GitHub (artwork): https://github.com/wkoszek/sensorama-artwork
Author

WWW: http://www.koszek.com
Twitter: https://twitter.com/wkoszek
LinkedIn: https://www.linkedin.com/in/wkoszek/
Email: wojciech (at) koszek.com

Published in: Software

Building an Open Source iOS app: lessons learned

  1. 1. Building An Open-Source iOS App Wojciech Adam Koszek · http://www.koszek.com · ! wkoszek Silicon Valley Mobile Developers & Designers, Dec 12th, 2016
  2. 2. Building An Open-Source iOS App Wojciech Adam Koszek · http://www.koszek.com · ! wkoszek Silicon Valley Mobile Developers & Designers, Dec 12th, 2016 EVERYTHING (opinions, thoughs, feelings, projects) in this talk are my own and NOT my employer
  3. 3. Today's talk is about Sensorama Open Source Sensor Platform for Data Science http://www.sensorama.org
  4. 4. As I talk...
  5. 5. Visit website http://www.sensorama.org
  6. 6. Install... ...on App Store
  7. 7. Quick Q/A to the audience
  8. 8. Developers of iOS or Android?
  9. 9. Favourite Open Source?
  10. 10. Have you ever Contributed to the Open Source?
  11. 11. How many Apps submitted to the Apple or Play Store?
  12. 12. Do you Plan to publish an App?
  13. 13. Do you Plan to publish an Open-Source App?
  14. 14. My agenda
  15. 15. 6 parts Questions and discussion afterwards
  16. 16. 6 parts Questions and discussion afterwards OK to interrupt and disagree!
  17. 17. Motivation Why/how/who/what/when Design & App Concept First app look and feel Usability tests How people liked it? Implementation Which tools I've used and how I've used them. Open Source: good and BAD parts What to do and what NOT to do Summary Q/A
  18. 18. Motivation Why/how/who/what/when Design & App Concept First app look and feel Usability tests How people liked it? Implementation Which tools I've used and how I've used them. Open Source: good and BAD parts What to do and what NOT to do Summary Q/A
  19. 19. Motivation Why/how/who/what/when Design & App Concept First app look and feel Usability tests How people liked it? Implementation Which tools I've used and how I've used them. Open Source: good and BAD parts What to do and what NOT to do Summary Q/A
  20. 20. ...and convince you that doing OSS development is something your should try
  21. 21. My background
  22. 22. Motivation 1
  23. 23. SETI...
  24. 24. ...for Sensors
  25. 25. Data science research
  26. 26. Data science research Nice to be able to use your own data for your education
  27. 27. "Product Manager" Exercise
  28. 28. Dealing with users, their feedback, design and look, code, etc...
  29. 29. Real-world "app" experience
  30. 30. Very different from UNIX stuff I'm used to
  31. 31. Open-Source Development Exercise
  32. 32. Open-Source Development Exercise Open code design, development and maintenance done in GitHub
  33. 33. Making practical stuff is a Great way to learn
  34. 34. From 0 to...
  35. 35. Design and App concept 2
  36. 36. General idea
  37. 37. Sensor data recorder
  38. 38. Tap to start recording
  39. 39. Tap to stop recording
  40. 40. Easily export data out of the phone
  41. 41. Just e-mail the file to the user
  42. 42. Open data format
  43. 43. Open data format Everyone can open and parse the data
  44. 44. JSON
  45. 45. Looked at other similar apps "Good artists borrow, great artists steal"
  46. 46. Voice recorder Recording interface
  47. 47. Apple's Voice Memos Recording interface
  48. 48. Clock Nice Table Views
  49. 49. WWDC App Nice Table Views
  50. 50. Podcast App Decent colors/views
  51. 51. Decided to use 3 screens As simple as that!
  52. 52. Early prototypes
  53. 53. Paper is much better Very easy way to iterate
  54. 54. No need to draw much of complex stuff Just rectangles, squares and circles
  55. 55. Picking tools?
  56. 56. Picking tools? For Open-Source they must be reproducible + automated
  57. 57. Started with designing in InkScape
  58. 58. Started with designing in InkScape Android
  59. 59. Started with designing in InkScape Too much work for early design
 
 Too few people use it to make it practical
  60. 60. Open Source: less availability for design tools There are some, but most of designers don't use them
  61. 61. Commercial tools: much better for now
  62. 62. You probably already have them
  63. 63. Keynote
  64. 64. Some design/prototyping inspiration Apple's "Fake It Till You Make It" WWDC presentation https://developer.apple.com/videos/play/wwdc2014/223
  65. 65. Some design/prototyping inspiration Apple's Designing for Future Hardware WWDC presentation https://developer.apple.com/videos/play/wwdc2015/801/
  66. 66. PowerPoint
  67. 67. Software I paid for
  68. 68. Affinity Designer
  69. 69. Affinity Designer Not enough community yet. VERY promising
  70. 70. Affinity Designer Not enough community yet. VERY promising Flat rate pricing
  71. 71. Affinity Designer Not enough community yet. VERY promising Flat rate pricing ($50) NO scripting yet....
  72. 72. Graphic
  73. 73. Graphic (used to be iDraw)
  74. 74. Graphic (used to be iDraw) Nice and simple
  75. 75. Graphic (used to be iDraw) Nice and simple Scriptable (uses http://jstalk.org/) Powerful but WEIRD No real ecosystem (templates, stencils)
  76. 76. Software I recommend
  77. 77. Adobe Creative Suite
  78. 78. Adobe Creative Suite If $50/month is OK with you
  79. 79. Adobe Creative Suite If $50/month is OK with you All their tools work well within the suite
  80. 80. Sketch
  81. 81. Sketch Somewhat popular recently
  82. 82. Sketch Somewhat popular recently Easy
  83. 83. Sketch Somewhat popular recently Easy Flat pricing ($50/once)
  84. 84. Sketch Somewhat popular recently Easy Flat pricing ($50/once) Some scripting!
  85. 85. Sketch Somewhat popular recently Easy Flat pricing ($50/once) Some scripting! Winner for now!
  86. 86. Sketchtool for command line interface
  87. 87. Sketchtool for command line interface My artwork = 1 sketch file
  88. 88. Sketchtool for command line interface My artwork = 1 sketch file https://github.com/wkoszek/sensorama-artwork
  89. 89. Rendering is completely automated ./regen.sh
  90. 90. Updating is completely automated ./update.sh git commit ../sensorama-ios
  91. 91. Let me know how your flow works like!
  92. 92. OSS truth about design tools
  93. 93. OSS truth about design tools Imperfect for GitHub work (binary formats)
  94. 94. Usability tests 3
  95. 95. Asking people to tell you how to make stuff work is great
  96. 96. Users getting confused: great feedback for you
  97. 97. Users give a lot of "I don't get it" feedback
  98. 98. Users give a lot of "I don't get it" feedback Especially for a geeky app like this
  99. 99. See my YouTube channel "Building Real-World iOS App" https://github.com/wkoszek/sensorama-ios
  100. 100. Implementation 4
  101. 101. 1st version Android!
  102. 102. Android tools - fine for smaller OSS projects
  103. 103. Bigger projects: you feel like Java/Gradle compilers should be 3-5x faster
  104. 104. Android tools - fine for smaller OSS projects M ain IDE not Open-Source
  105. 105. Gradle (build system) = Open Source
  106. 106. Android vs iOS Tools
  107. 107. Android vs iOS Tools Tie
  108. 108. Android vs iOS Tools Tie Too much XML
  109. 109. Android vs iOS Tools Tie (XCode = Android Studio in problems) e.g.: Too much XML
  110. 110. Android vs iOS Tools Tie Too much XML
  111. 111. Open Source Good and BAD parts 5
  112. 112. Good stuff
  113. 113. A lot of functionality
  114. 114. A lot of functionality for FREE !
  115. 115. Sensorama is using 23OSS modules
  116. 116. Too many to mention them all, but lets looks at what I've put into it quickly
  117. 117. Fabric/Crashlytics Must have for debugging
  118. 118. NSLogger for convenient debugging
  119. 119. Realm for data model
  120. 120. AWS SDK for storage
  121. 121. Auth0 for authorization
  122. 122. Mailgun for e-mail handling
  123. 123. BZIP2 for very good compression
  124. 124. InAppSettings for the settings screen
  125. 125. All this stuff is Open Source!!!
  126. 126. Just go on GitHub and search for things you need
  127. 127. I have 2 takes on it
  128. 128. Take 1
  129. 129. Without OSS building app like Sensorama wouldn't be possible
  130. 130. Take 2
  131. 131. Using only my own stuff would make it more fun
  132. 132. Using only my own stuff would make it more fun but would take more time
  133. 133. Using only my own stuff would make it more fun but would take more time or NOT?
  134. 134. Take 3
  135. 135. Use it "as expected" and you'll be fine
  136. 136. If you deviate from normal use case, you're completely alone
  137. 137. Cool thing
  138. 138. Basically $0 for code development
  139. 139. Many companies offer tools for FREE to Open-Source projects
  140. 140. e.g.: Auth0 has a nice, fully-featured version of their product available to Open-Source projects
  141. 141. You project is OSS? No need to pay for GitHub or Travis-CI
  142. 142. JetBrains gave me their tools to try out for free too
  143. 143. Some lessons learned
  144. 144. OSS modules: CocoaPods
  145. 145. Repository for all cool iOS stuff
  146. 146. CocoaPods is great!
  147. 147. CocoaPods is great! Sort of
  148. 148. CocoaPods is great! Sort of Takes your XCode project and modifies it
  149. 149. CocoaPods is great! Sort of Takes your XCode project and modifies it in ... unreadable ways (XML)
  150. 150. CocoaPods is great!
  151. 151. Conclussion 1
  152. 152. Conclusion 1 You need to know how to use it well
  153. 153. CocoaPods is Ruby
  154. 154. CocoaPods is Ruby Podfile is like Gemfile
  155. 155. CocoaPods is Ruby Podfile is like Gemfile Use specific version of the modules
  156. 156. CocoaPods is Ruby Podfile is like Gemfile Use specific version of the modules Will help you stay out of trouble
  157. 157. CocoaPods is adding 
 more complexity
  158. 158. CocoaPods is adding 
 more complexity and dependency on network, GitHub and other people repositories
  159. 159. CocoaPods is adding 
 more complexity and dependency on network, GitHub and other people repositories
  160. 160. CocoaPods is adding 
 more complexity and dependency on network, GitHub and other people repositories Matters if you work over the tethered connection
  161. 161. Conclusion 2
  162. 162. Conclusion 2 Commit files from Cocoa
  163. 163. Conclusion 2 Commit files from Cocoa At least you'll be able to see what changes
  164. 164. Might be tons of MBs of code, but at least you can "git diff" it
  165. 165. Some modules are hundreds of lines of code
  166. 166. Conclusion 3 My next project will use Carthage
  167. 167. Carthage
  168. 168. Carthage Building you frameworks which you later integrate
  169. 169. Conclusion 4
  170. 170. Most stuff just works
  171. 171. Most stuff sometimes works
  172. 172. 1st Android version was using Parse SDK
  173. 173. 1st Android version was using Parse SDK Shut down
  174. 174. Travis-CI
  175. 175. Travis-CI Great and free continuous integration solution!
  176. 176. Travis-CI Great and free continuous integration solution! Stuff changes fairly often
  177. 177. Travis-CI Great and free continuous integration solution! Slow and sometimes out of date
  178. 178. Other stuff needs monitoring
  179. 179. Other stuff needs monitoring 3rd parties you depend on become your "failure chain"
  180. 180. Be prepared for a lot of documentation reading (all following images have been made by other great people who put it on imgur.com)
  181. 181. Conclusion 5
  182. 182. Update stuff only when necessary
  183. 183. Updates are when the most breakages happened
  184. 184. Easy to get help from companies
  185. 185. Harder from volunteers/free projects
  186. 186. How to communicate?
  187. 187. Do due diligence, be clear and post exact data
  188. 188. Remember: volunteers!
  189. 189. Report bugs in code and documentation
  190. 190. Talk to people
  191. 191. Help with sample code
  192. 192. Done is better than perfect
  193. 193. Other than that - business as usual
  194. 194. If there is documentation
  195. 195. BAD stuff (all following images have been made by other great people who put it on imgur.com)
  196. 196. You must do your homework before asking
  197. 197. But also ask early to understand if you're doing the right thing
  198. 198. A LOT of work
  199. 199. Using Fastlane for iOS
  200. 200. Single-command build and deploy to Fabric and AppStore
  201. 201. Pain to get to work (Ruby dependencies breaking) but GREAT once it works
  202. 202. Harder than non-OSS projects
  203. 203. Others are looking, so you want to get to a certain decent code quality
  204. 204. Easy to publish too much (e.g.: your API keys)
  205. 205. Easy to publish too much (e.g.: your API keys) Regenerating = painful
  206. 206. Prepare to unexpected breakages
  207. 207. Follow your vendors Example of Apple's 2- factor authentication
  208. 208. Summary 6
  209. 209. Star Sensorama on GitHub http://www.sensorama.org
  210. 210. Q/A
  211. 211. Building An Open-Source iOS App Wojciech Adam Koszek · http://www.koszek.com · ! wkoszek Silicon Valley Mobile Developers & Designers, Dec 12th, 2016

×