Your SlideShare is downloading. ×
Como usar seu para-quedas Caso você caia no mundo de iOS
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Como usar seu para-quedas Caso você caia no mundo de iOS

492
views

Published on

Palestra TDC 2013 - São Paulo - Trilha iOS

Palestra TDC 2013 - São Paulo - Trilha iOS

Published in: Technology

0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
492
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
31
Comments
0
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Como usar seu para-quedas Caso você caia no mundo de iOS Isso não é um para- quedas, é uma maçã! Fuuu Wednesday, July 10, 13
  • 2. Oi! Hanneli (a.k.a. @hannelita) Desenvolvedora Jogos Café e Pokémon <3 Wednesday, July 10, 13
  • 3. O que vamos ver aqui Wednesday, July 10, 13
  • 4. O que vamos ver aqui Desafios de qualquer desenvolvedor Wednesday, July 10, 13
  • 5. O que vamos ver aqui Desafios de qualquer desenvolvedor Por que ir para mobile e iOS? Wednesday, July 10, 13
  • 6. O que vamos ver aqui Desafios de qualquer desenvolvedor Por que ir para mobile e iOS? Básico de Objective C Wednesday, July 10, 13
  • 7. O que vamos ver aqui Desafios de qualquer desenvolvedor Por que ir para mobile e iOS? Básico de Objective C Truques de memória Wednesday, July 10, 13
  • 8. O que vamos ver aqui Desafios de qualquer desenvolvedor Por que ir para mobile e iOS? Básico de Objective C Truques de memória Algumas receitas de bolo (a.k.a design patterns) Wednesday, July 10, 13
  • 9. O que vamos ver aqui Desafios de qualquer desenvolvedor Por que ir para mobile e iOS? Básico de Objective C Truques de memória Algumas receitas de bolo (a.k.a design patterns) Open Source e ferramentas legais Wednesday, July 10, 13
  • 10. O que vamos ver aqui Desafios de qualquer desenvolvedor Por que ir para mobile e iOS? Básico de Objective C Truques de memória Algumas receitas de bolo (a.k.a design patterns) Open Source e ferramentas legais Pokémon, história e gifs engraçados <3 Wednesday, July 10, 13
  • 11. O que vamos ver aqui Desafios de qualquer desenvolvedor Por que ir para mobile e iOS? Básico de Objective C Truques de memória Algumas receitas de bolo (a.k.a design patterns) Open Source e ferramentas legais Pokémon, história e gifs engraçados <3 Wednesday, July 10, 13
  • 12. O que vamos ver aqui Desafios de qualquer desenvolvedor Por que ir para mobile e iOS? Básico de Objective C Truques de memória Algumas receitas de bolo (a.k.a design patterns) Open Source e ferramentas legais Pokémon, história e gifs engraçados <3 E sem graça também Wednesday, July 10, 13
  • 13. Programação Wednesday, July 10, 13
  • 14. 1990 -> 2000 Wednesday, July 10, 13
  • 15. 1990 -> 2000 Wednesday, July 10, 13
  • 16. 1990 -> 2000 Wednesday, July 10, 13
  • 17. 1990 -> 2000 Wednesday, July 10, 13
  • 18. 1990 -> 2000 Wednesday, July 10, 13
  • 19. 1990 -> 2000 Wednesday, July 10, 13
  • 20. 1990 -> 2000 Web! Wednesday, July 10, 13
  • 21. Skill set Wednesday, July 10, 13
  • 22. Skill set PHP Wednesday, July 10, 13
  • 23. Skill set PHP Apache Wednesday, July 10, 13
  • 24. Skill set PHP Apache MySQL Wednesday, July 10, 13
  • 25. Fácil! Wednesday, July 10, 13
  • 26. Fácil! Wednesday, July 10, 13
  • 27. Wednesday, July 10, 13
  • 28. Wednesday, July 10, 13
  • 29. Wednesday, July 10, 13
  • 30. JDBC Wednesday, July 10, 13
  • 31. JDBC Hibernate 2 Wednesday, July 10, 13
  • 32. JDBC Hibernate 2 XML Wednesday, July 10, 13
  • 33. JDBC Hibernate 2 XML JPA Wednesday, July 10, 13
  • 34. JDBC Hibernate 2 XML JPA Hibernate 3.1 Wednesday, July 10, 13
  • 35. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations Wednesday, July 10, 13
  • 36. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 Wednesday, July 10, 13
  • 37. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Wednesday, July 10, 13
  • 38. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Wednesday, July 10, 13
  • 39. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Wednesday, July 10, 13
  • 40. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet Wednesday, July 10, 13
  • 41. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Wednesday, July 10, 13
  • 42. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Wednesday, July 10, 13
  • 43. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 Wednesday, July 10, 13
  • 44. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor Wednesday, July 10, 13
  • 45. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor JSF1 Wednesday, July 10, 13
  • 46. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor JSF1 JSF 2 Wednesday, July 10, 13
  • 47. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor JSF1 JSF 2 Richfaces Wednesday, July 10, 13
  • 48. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor JSF1 JSF 2 Richfaces Primefaces Wednesday, July 10, 13
  • 49. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor JSF1 JSF 2 Richfaces Primefaces Seam Wednesday, July 10, 13
  • 50. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor JSF1 JSF 2 Richfaces Primefaces Seam Wednesday, July 10, 13
  • 51. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor JSF1 JSF 2 Richfaces Primefaces Seam Tomcat Wednesday, July 10, 13
  • 52. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor JSF1 JSF 2 Richfaces Primefaces Seam Tomcat Jetty Wednesday, July 10, 13
  • 53. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor JSF1 JSF 2 Richfaces Primefaces Seam Tomcat Jetty JBoss Wednesday, July 10, 13
  • 54. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor JSF1 JSF 2 Richfaces Primefaces Seam Tomcat Jetty JBoss Glassfish Wednesday, July 10, 13
  • 55. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor JSF1 JSF 2 Richfaces Primefaces Seam Tomcat Jetty JBoss Glassfish Weblogic Wednesday, July 10, 13
  • 56. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor JSF1 JSF 2 Richfaces Primefaces Seam Tomcat Jetty JBoss Glassfish Weblogic Websphere Wednesday, July 10, 13
  • 57. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor JSF1 JSF 2 Richfaces Primefaces Seam Tomcat Jetty JBoss Glassfish Weblogic Websphere EJB Wednesday, July 10, 13
  • 58. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor JSF1 JSF 2 Richfaces Primefaces Seam Tomcat Jetty JBoss Glassfish Weblogic Websphere EJB Webservices Wednesday, July 10, 13
  • 59. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor JSF1 JSF 2 Richfaces Primefaces Seam Tomcat Jetty JBoss Glassfish Weblogic Websphere EJB Webservices JMS Wednesday, July 10, 13
  • 60. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor JSF1 JSF 2 Richfaces Primefaces Seam Tomcat Jetty JBoss Glassfish Weblogic Websphere EJB Webservices JMS JAX-RS Wednesday, July 10, 13
  • 61. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor JSF1 JSF 2 Richfaces Primefaces Seam Tomcat Jetty JBoss Glassfish Weblogic Websphere EJB Webservices JMS JAX-RS Eclipse Wednesday, July 10, 13
  • 62. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor JSF1 JSF 2 Richfaces Primefaces Seam Tomcat Jetty JBoss Glassfish Weblogic Websphere EJB Webservices JMS JAX-RS Eclipse IntelliJ IDEA Wednesday, July 10, 13
  • 63. JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2 EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor JSF1 JSF 2 Richfaces Primefaces Seam Tomcat Jetty JBoss Glassfish Weblogic Websphere EJB Webservices JMS JAX-RS Eclipse IntelliJ IDEA Netbeans Wednesday, July 10, 13
  • 64. Fácil, né? Wednesday, July 10, 13
  • 65. Fácil, né? Wednesday, July 10, 13
  • 66. Tem mais! Wednesday, July 10, 13
  • 67. Tem mais! Oracle Wednesday, July 10, 13
  • 68. Tem mais! Oracle NoSQL Wednesday, July 10, 13
  • 69. Tem mais! Oracle NoSQL Ruby Wednesday, July 10, 13
  • 70. Tem mais! Oracle NoSQL Ruby Rails Wednesday, July 10, 13
  • 71. Tem mais! Oracle NoSQL Ruby Rails Sinatra Wednesday, July 10, 13
  • 72. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Wednesday, July 10, 13
  • 73. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend Wednesday, July 10, 13
  • 74. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend HTML Wednesday, July 10, 13
  • 75. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend HTML CSS Wednesday, July 10, 13
  • 76. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend HTML CSS JS Wednesday, July 10, 13
  • 77. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend HTML CSS JS jQuery Wednesday, July 10, 13
  • 78. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend HTML CSS JS jQuery Python Wednesday, July 10, 13
  • 79. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend HTML CSS JS jQuery Python Django Wednesday, July 10, 13
  • 80. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend HTML CSS JS jQuery Python Django TDD Wednesday, July 10, 13
  • 81. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend HTML CSS JS jQuery Python Django TDD vim Wednesday, July 10, 13
  • 82. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend HTML CSS JS jQuery Python Django TDD vim RSpec Wednesday, July 10, 13
  • 83. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend HTML CSS JS jQuery Python Django TDD vim RSpec Mongo Wednesday, July 10, 13
  • 84. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend HTML CSS JS jQuery Python Django TDD vim RSpec Mongo Cassandra Wednesday, July 10, 13
  • 85. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend HTML CSS JS jQuery Python Django TDD vim RSpec Mongo Cassandra Node.js Wednesday, July 10, 13
  • 86. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend HTML CSS JS jQuery Python Django TDD vim RSpec Mongo Cassandra Node.js Meteor.js Wednesday, July 10, 13
  • 87. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend HTML CSS JS jQuery Python Django TDD vim RSpec Mongo Cassandra Node.js Meteor.js Backbone.js Wednesday, July 10, 13
  • 88. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend HTML CSS JS jQuery Python Django TDD vim RSpec Mongo Cassandra Node.js Meteor.js Backbone.js Neo4j Wednesday, July 10, 13
  • 89. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend HTML CSS JS jQuery Python Django TDD vim RSpec Mongo Cassandra Node.js Meteor.js Backbone.js Neo4j Redis Wednesday, July 10, 13
  • 90. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend HTML CSS JS jQuery Python Django TDD vim RSpec Mongo Cassandra Node.js Meteor.js Backbone.js Neo4j Redis Heroku Wednesday, July 10, 13
  • 91. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend HTML CSS JS jQuery Python Django TDD vim RSpec Mongo Cassandra Node.js Meteor.js Backbone.js Neo4j Redis Heroku Git Wednesday, July 10, 13
  • 92. Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend HTML CSS JS jQuery Python Django TDD vim RSpec Mongo Cassandra Node.js Meteor.js Backbone.js Neo4j Redis Heroku Git Torquebox Wednesday, July 10, 13
  • 93. Sou F... Wednesday, July 10, 13
  • 94. Sou F... Wednesday, July 10, 13
  • 95. Sou F... Dig Din Wednesday, July 10, 13
  • 96. Só que não Wednesday, July 10, 13
  • 97. Só que não Wednesday, July 10, 13
  • 98. 2000 -> hoje Wednesday, July 10, 13
  • 99. 2000 -> hoje Wednesday, July 10, 13
  • 100. 2000 -> hoje Wednesday, July 10, 13
  • 101. 2000 -> hoje Wednesday, July 10, 13
  • 102. 2000 -> hoje Wednesday, July 10, 13
  • 103. 2000 -> hoje Wednesday, July 10, 13
  • 104. 2000 -> hoje Wednesday, July 10, 13
  • 105. 2000 -> hoje Wednesday, July 10, 13
  • 106. 2000 -> hoje Mobile! Wednesday, July 10, 13
  • 107. Seu dispositivo móvel Wednesday, July 10, 13
  • 108. Seu dispositivo móvel Banco Wednesday, July 10, 13
  • 109. Seu dispositivo móvel Banco Email Wednesday, July 10, 13
  • 110. Seu dispositivo móvel Banco Email Personal Trainer Wednesday, July 10, 13
  • 111. Seu dispositivo móvel Banco Email Personal Trainer Despertador Wednesday, July 10, 13
  • 112. Seu dispositivo móvel Banco Email Personal Trainer Despertador Álbum de fotos Wednesday, July 10, 13
  • 113. Seu dispositivo móvel Banco Email Personal Trainer Despertador Álbum de fotos Comunicação Wednesday, July 10, 13
  • 114. A maçã Wednesday, July 10, 13
  • 115. A maçã Wednesday, July 10, 13
  • 116. A maçã Wednesday, July 10, 13
  • 117. A maçã Wednesday, July 10, 13
  • 118. A maçã Wednesday, July 10, 13
  • 119. A maçã Aí, gata, tem WhatsApp? Wednesday, July 10, 13
  • 120. O iPhone Wednesday, July 10, 13
  • 121. O iPhone Wednesday, July 10, 13
  • 122. O iPhone Wednesday, July 10, 13
  • 123. O iPhone Wednesday, July 10, 13
  • 124. O iPhone A maçã de Adão e Eva dá dinheiro? Wednesday, July 10, 13
  • 125. O iPhone A maçã de Adão e Eva dá dinheiro? Faça umas apps então <3 Wednesday, July 10, 13
  • 126. Desenvolvendo Wednesday, July 10, 13
  • 127. Desenvolvendo Objective C Wednesday, July 10, 13
  • 128. Desenvolvendo Objective C iOS Wednesday, July 10, 13
  • 129. Desenvolvendo Objective C iOS Xcode Wednesday, July 10, 13
  • 130. Desenvolvendo Objective C iOS Xcode SQLite Wednesday, July 10, 13
  • 131. Desenvolvendo Objective C iOS Xcode SQLite Foundation Wednesday, July 10, 13
  • 132. Desenvolvendo Objective C iOS Xcode SQLite Foundation C Wednesday, July 10, 13
  • 133. Desenvolvendo Objective C iOS Xcode SQLite Foundation C C++ Wednesday, July 10, 13
  • 134. Desenvolvendo Objective C iOS Xcode SQLite Foundation C C++ UIKit Wednesday, July 10, 13
  • 135. Desenvolvendo Objective C iOS Xcode SQLite Foundation C C++ UIKit CoreGraphics Wednesday, July 10, 13
  • 136. Desenvolvendo Objective C iOS Xcode SQLite Foundation C C++ UIKit CoreGraphics CoreServices Wednesday, July 10, 13
  • 137. Desenvolvendo Objective C iOS Xcode SQLite Foundation C C++ UIKit CoreGraphics CoreServices CoreLocation Wednesday, July 10, 13
  • 138. Desenvolvendo Objective C iOS Xcode SQLite Foundation C C++ UIKit CoreGraphics CoreServices CoreLocation ARC Wednesday, July 10, 13
  • 139. Desenvolvendo Wednesday, July 10, 13
  • 140. Desenvolvendo Wednesday, July 10, 13
  • 141. Por onde começo? Wednesday, July 10, 13
  • 142. Por onde começo? Mínimo de programação procedural Wednesday, July 10, 13
  • 143. Por onde começo? Criar variáveis com um valor Printar esses valores Criar uma função Chamar essa função Wednesday, July 10, 13
  • 144. Fácil, vai! Wednesday, July 10, 13
  • 145. Espere aí Determinar o que preciso para escrever o código! Wednesday, July 10, 13
  • 146. Checklist Mac Xcode Wednesday, July 10, 13
  • 147. Checklist Mac Xcode Wednesday, July 10, 13
  • 148. Checklist Mac Xcode Wednesday, July 10, 13
  • 149. Checklist Mac Xcode Wednesday, July 10, 13
  • 150. Checklist Mac Xcode Wednesday, July 10, 13
  • 151. Abra o XCode Wednesday, July 10, 13
  • 152. Abra o XCode Botão pra ca....* Wednesday, July 10, 13
  • 153. Abra o XCode Wednesday, July 10, 13
  • 154. Crie um projeto File --> New --> Project Escolha Single View Application Pouco importam os nomes Salve num local adequado Wednesday, July 10, 13
  • 155. Crie um projeto Wednesday, July 10, 13
  • 156. Não desista! Wednesday, July 10, 13
  • 157. Não desista! Mínimo de programação procedural Wednesday, July 10, 13
  • 158. DEMO! 666 Wednesday, July 10, 13
  • 159. DEMO! 666Vem, XCODE <3 Wednesday, July 10, 13
  • 160. Não desista! 1. Wednesday, July 10, 13
  • 161. Não desista! 1. Wednesday, July 10, 13
  • 162. Não desista! 1. 2. Wednesday, July 10, 13
  • 163. Não desista! 1. 2. Simulador Wednesday, July 10, 13
  • 164. Não desista! 1. 2. Simulador 3. Wednesday, July 10, 13
  • 165. Não desista! 1. 2. Simulador 3. Wednesday, July 10, 13
  • 166. Não desista! 1. 2. Simulador 3. Wednesday, July 10, 13
  • 167. Não desista! 1. 2. Simulador 3. 4. Wednesday, July 10, 13
  • 168. Não desista! 1. 2. Simulador 3. 4. Wednesday, July 10, 13
  • 169. Não desista! 1. 2. Simulador 3. 4. Wednesday, July 10, 13
  • 170. Procedural Wednesday, July 10, 13
  • 171. Procedural Wednesday, July 10, 13
  • 172. Procedural Criar variáveis com um valor Printar esses valores Criar uma função Chamar essa função Wednesday, July 10, 13
  • 173. Procedural Criar variáveis com um valor Printar esses valores Criar uma função Chamar essa função Wednesday, July 10, 13
  • 174. Procedural Criar variáveis com um valor Printar esses valores Criar uma função Chamar essa função Wednesday, July 10, 13
  • 175. Procedural Criar variáveis com um valor Printar esses valores Criar uma função Chamar essa função Wednesday, July 10, 13
  • 176. Uma função [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 177. Uma função [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 178. Uma função [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 179. Uma função Tipo de retorno [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 180. Uma função Tipo de retorno [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 181. Uma função [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 182. Uma função [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 183. Uma função Nome [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 184. Uma função Nome [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 185. Uma função [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 186. Uma função [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 187. Uma função Nome do parâmetro [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 188. Uma função Nome do parâmetro [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 189. Uma função [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 190. Uma função [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 191. Uma função Tipo do parâmetro [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 192. Uma função Tipo do parâmetro [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 193. Uma função [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 194. Uma função [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 195. Uma função Corpo [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 196. Uma função Corpo [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 197. Uma função [self funcaoTDC:coloqueSuaVariavelAqui]; Chamando sua função Wednesday, July 10, 13
  • 198. Uma função Criar variáveis com um valor Printar esses valores Criar uma função Chamar essa função Wednesday, July 10, 13
  • 199. Uma função Criar variáveis com um valor Printar esses valores Criar uma função Chamar essa função Wednesday, July 10, 13
  • 200. [[[]]] * Wednesday, July 10, 13
  • 201. Ponteiro == Controle Remoto Wednesday, July 10, 13
  • 202. Ponteiro == Controle Remoto Wednesday, July 10, 13
  • 203. Ponteiro == Controle Remoto Wednesday, July 10, 13
  • 204. Ponteiro == Controle Remoto Wednesday, July 10, 13
  • 205. Ponteiro == Controle Remoto Wednesday, July 10, 13
  • 206. Ponteiro == Controle Remoto Wednesday, July 10, 13
  • 207. Ponteiro == Controle Remoto Wednesday, July 10, 13
  • 208. Ponteiro == Controle Remoto NSString *tdc Wednesday, July 10, 13
  • 209. Ponteiro == Controle Remoto Wednesday, July 10, 13
  • 210. Ponteiro == Controle Remoto Endereço de memória Wednesday, July 10, 13
  • 211. Ponteiro == Controle Remoto Wednesday, July 10, 13
  • 212. Ponteiro == Controle Remoto Valor Wednesday, July 10, 13
  • 213. Ponteiro == Controle Remoto Wednesday, July 10, 13
  • 214. Fácil, vai! Wednesday, July 10, 13
  • 215. Próximo passo Wednesday, July 10, 13
  • 216. Próximo passo Mínimo de Orientação a Objetos Wednesday, July 10, 13
  • 217. Próximo passo Criar uma classe Criar atributos e métodos Instanciar um objeto Wednesday, July 10, 13
  • 218. Criando uma classe Wednesday, July 10, 13
  • 219. Criando uma classe Wednesday, July 10, 13
  • 220. Criando uma classe Wednesday, July 10, 13
  • 221. Criando uma classe Wednesday, July 10, 13
  • 222. Criando uma classe Wednesday, July 10, 13
  • 223. Criando uma classe CRIE GRUPOS! Wednesday, July 10, 13
  • 224. Grupos para as classes Wednesday, July 10, 13
  • 225. Grupos para as classes Wednesday, July 10, 13
  • 226. Grupos para as classes Cuidado! Wednesday, July 10, 13
  • 227. Grupos para as classes Cuidado! Não é criado um diretório! Wednesday, July 10, 13
  • 228. DEMO! 666 Wednesday, July 10, 13
  • 229. DEMO! 666Vem, XCODE <3 Wednesday, July 10, 13
  • 230. .h Wednesday, July 10, 13
  • 231. .h Atributos Wednesday, July 10, 13
  • 232. .h Wednesday, July 10, 13
  • 233. .h Métodos Wednesday, July 10, 13
  • 234. .h - destaques Wednesday, July 10, 13
  • 235. .h - destaques @property Wednesday, July 10, 13
  • 236. .h - destaques @property readwrite ou readonly assign, retain ou copy nonatomic ou atomic Wednesday, July 10, 13
  • 237. .h - destaques @property readwrite ou readonly assign, retain ou copy nonatomic ou atomic Wednesday, July 10, 13
  • 238. .h - destaques @property readwrite ou readonly assign, retain ou copy nonatomic ou atomic = Wednesday, July 10, 13
  • 239. .h - destaques @property readwrite ou readonly assign, retain ou copy nonatomic ou atomic getters e setters automáticos = Wednesday, July 10, 13
  • 240. .m Wednesday, July 10, 13
  • 241. .m Indica a interface Wednesday, July 10, 13
  • 242. .m Wednesday, July 10, 13
  • 243. .m “Sintetiza” as properties Wednesday, July 10, 13
  • 244. .m Wednesday, July 10, 13
  • 245. .m Implementa os métodos Wednesday, July 10, 13
  • 246. Visibilidade Wednesday, July 10, 13
  • 247. Visibilidade Todo método que está no .h é público Wednesday, July 10, 13
  • 248. Até aqui, fácil! Wednesday, July 10, 13
  • 249. Em Objective C... Wednesday, July 10, 13
  • 250. Em Objective C... Tenho que fazer [alloc[init]] Wednesday, July 10, 13
  • 251. Em Objective C... Wednesday, July 10, 13
  • 252. Em Objective C... E precisa dar release também! Wednesday, July 10, 13
  • 253. Em Objective C... Wednesday, July 10, 13
  • 254. Em Objective C... E se não fizer? Wednesday, July 10, 13
  • 255. Em Objective C... Wednesday, July 10, 13
  • 256. Em Objective C... LEAK Wednesday, July 10, 13
  • 257. Use release quando Houver um [alloc[init]] Houver um [copy] Qualquer método que remeta a um Factory pattern - [xxx create] Wednesday, July 10, 13
  • 258. Use release! Wednesday, July 10, 13
  • 259. Use release! Nunca chame [pikachu dealloc] Wednesday, July 10, 13
  • 260. dealloc Wednesday, July 10, 13
  • 261. dealloc Declaração do que deve ser feito ao desalocar o objeto Wednesday, July 10, 13
  • 262. Por falar em dealloc Wednesday, July 10, 13
  • 263. Por falar em dealloc Wednesday, July 10, 13
  • 264. Por falar em dealloc [TreinadorPokemon alloc[init]]; Wednesday, July 10, 13
  • 265. Por falar em dealloc dealloc [TreinadorPokemon alloc[init]]; Wednesday, July 10, 13
  • 266. Ajude a implementar! Wednesday, July 10, 13
  • 267. Por falar em dealloc Wednesday, July 10, 13
  • 268. Por falar em dealloc Wednesday, July 10, 13
  • 269. Por falar em dealloc Wednesday, July 10, 13
  • 270. Por falar em dealloc Wednesday, July 10, 13
  • 271. Por falar em dealloc Wednesday, July 10, 13
  • 272. Por falar em dealloc Wednesday, July 10, 13
  • 273. Por falar em dealloc Wednesday, July 10, 13
  • 274. Por falar em dealloc - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; Treinador *gary = [Treinador alloc [init]]; } Wednesday, July 10, 13
  • 275. Por falar em dealloc - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; Treinador *gary = [Treinador alloc [init]]; } Treinador *ash Wednesday, July 10, 13
  • 276. Por falar em dealloc - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; Treinador *gary = [Treinador alloc [init]]; } Treinador *ash Wednesday, July 10, 13
  • 277. Por falar em dealloc - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; Treinador *gary = [Treinador alloc [init]]; } Treinador *ash Memória 1234h Wednesday, July 10, 13
  • 278. Por falar em dealloc - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; Treinador *gary = [Treinador alloc [init]]; } Treinador *ash Memória 1234h Wednesday, July 10, 13
  • 279. Por falar em dealloc - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; Treinador *gary = [Treinador alloc [init]]; } Treinador *ash Memória 1234h Wednesday, July 10, 13
  • 280. Por falar em dealloc - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; Treinador *gary = [Treinador alloc [init]]; } Treinador *ash Memória 1234h Wednesday, July 10, 13
  • 281. Por falar em dealloc - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; Treinador *gary = [Treinador alloc [init]]; } Treinador *ash Memória 1234h Treinador *gary Wednesday, July 10, 13
  • 282. Por falar em dealloc - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; Treinador *gary = [Treinador alloc [init]]; } Treinador *ash Memória 1234h Treinador *gary Wednesday, July 10, 13
  • 283. Por falar em dealloc Wednesday, July 10, 13
  • 284. Por falar em dealloc Por alguns instantes, gary apontará para ash! Wednesday, July 10, 13
  • 285. Por falar em dealloc Por alguns instantes, gary apontará para ash! Dangling pointer Wednesday, July 10, 13
  • 286. Dangling pointer - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; ash = nil; Treinador *gary = [Treinador alloc [init]]; } Wednesday, July 10, 13
  • 287. Dangling pointer - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; ash = nil; Treinador *gary = [Treinador alloc [init]]; } Treinador *ash Wednesday, July 10, 13
  • 288. Dangling pointer - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; ash = nil; Treinador *gary = [Treinador alloc [init]]; } Treinador *ash Wednesday, July 10, 13
  • 289. Dangling pointer - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; ash = nil; Treinador *gary = [Treinador alloc [init]]; } Treinador *ash Memória 1234h Wednesday, July 10, 13
  • 290. Dangling pointer - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; ash = nil; Treinador *gary = [Treinador alloc [init]]; } Treinador *ash Memória 1234h Wednesday, July 10, 13
  • 291. Dangling pointer - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; ash = nil; Treinador *gary = [Treinador alloc [init]]; } Treinador *ash Memória 1234h Wednesday, July 10, 13
  • 292. Dangling pointer - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; ash = nil; Treinador *gary = [Treinador alloc [init]]; } Treinador *ash Memória 1234h Wednesday, July 10, 13
  • 293. Dangling pointer - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; ash = nil; Treinador *gary = [Treinador alloc [init]]; } Treinador *ash Memória 1234h Wednesday, July 10, 13
  • 294. Dangling pointer - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; ash = nil; Treinador *gary = [Treinador alloc [init]]; } Treinador *ash Memória 1234h Wednesday, July 10, 13
  • 295. Dangling pointer - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; ash = nil; Treinador *gary = [Treinador alloc [init]]; } Treinador *ash Memória 1234h nil Wednesday, July 10, 13
  • 296. Dangling pointer - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; ash = nil; Treinador *gary = [Treinador alloc [init]]; } Treinador *ash Memória 1234h Treinador *gary nil Wednesday, July 10, 13
  • 297. Dangling pointer - (void) teste { Treinador *ash = [Treinador alloc [init]]; [ash release]; ash = nil; Treinador *gary = [Treinador alloc [init]]; } Treinador *ash Memória 1234h Treinador *gary nil Wednesday, July 10, 13
  • 298. Suave! Wednesday, July 10, 13
  • 299. Se há dealloc... Wednesday, July 10, 13
  • 300. Se há dealloc... Deve haver um init! Wednesday, July 10, 13
  • 301. Se há dealloc... Deve haver um init! Wednesday, July 10, 13
  • 302. Se há dealloc... Deve haver um init! Wednesday, July 10, 13
  • 303. Se há dealloc... Deve haver um init! Wednesday, July 10, 13
  • 304. init Wednesday, July 10, 13
  • 305. init Se ocorreu algum problema na inicialização do objeto, não inicialize seus atributos Wednesday, July 10, 13
  • 306. alloc - init - release Wednesday, July 10, 13
  • 307. alloc - init - release alloc Wednesday, July 10, 13
  • 308. alloc - init - release alloc init Wednesday, July 10, 13
  • 309. alloc - init - release alloc init release Wednesday, July 10, 13
  • 310. alloc - init - release alloc init release alloc init release Wednesday, July 10, 13
  • 311. alloc - init - release alloc init release alloc init release alloc init release Wednesday, July 10, 13
  • 312. alloc - init - release alloc init release alloc init release alloc init release alloc init release Wednesday, July 10, 13
  • 313. alloc - init - release alloc init release alloc init release alloc init release alloc init release alloc init release Wednesday, July 10, 13
  • 314. alloc - init - release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release Wednesday, July 10, 13
  • 315. alloc - init - release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release Wednesday, July 10, 13
  • 316. alloc - init - release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release Wednesday, July 10, 13
  • 317. alloc - init - release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release Wednesday, July 10, 13
  • 318. alloc - init - release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release Wednesday, July 10, 13
  • 319. alloc - init - release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release Wednesday, July 10, 13
  • 320. alloc - init - release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release Wednesday, July 10, 13
  • 321. alloc - init - release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release Wednesday, July 10, 13
  • 322. alloc - init - release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init releaseWednesday, July 10, 13
  • 323. alloc - init - release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release Wednesday, July 10, 13
  • 324. alloc - init - release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release Wednesday, July 10, 13
  • 325. alloc - init - release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release Wednesday, July 10, 13
  • 326. alloc - init - release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release Wednesday, July 10, 13
  • 327. alloc - init - release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release Wednesday, July 10, 13
  • 328. alloc - init - release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release Wednesday, July 10, 13
  • 329. alloc - init - release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release Wednesday, July 10, 13
  • 330. alloc - init - release Wednesday, July 10, 13
  • 331. autorelease Wednesday, July 10, 13
  • 332. autorelease Wednesday, July 10, 13
  • 333. autorelease Wednesday, July 10, 13
  • 334. autorelease Wednesday, July 10, 13
  • 335. autorelease Wednesday, July 10, 13
  • 336. autorelease pool Wednesday, July 10, 13
  • 337. autorelease pool [[ ]autorelease]; Wednesday, July 10, 13
  • 338. autorelease pool [[ ]autorelease]; Wednesday, July 10, 13
  • 339. autorelease pool [[ ]autorelease]; Treinador *ash Wednesday, July 10, 13
  • 340. autorelease pool [[ ]autorelease]; Treinador *ash Wednesday, July 10, 13
  • 341. autorelease pool [[ ]autorelease]; Treinador *ash Wednesday, July 10, 13
  • 342. autorelease pool [[ ]autorelease]; Treinador *ash Wednesday, July 10, 13
  • 343. autorelease pool [[ ]autorelease]; Treinador *ash Wednesday, July 10, 13
  • 344. Super fácil! Wednesday, July 10, 13
  • 345. Por falar em alocar Wednesday, July 10, 13
  • 346. Por falar em alocar Wednesday, July 10, 13
  • 347. Por falar em alocar EquipeRocket *rocket = Wednesday, July 10, 13
  • 348. Por falar em alocar EquipeRocket *rocket = Wednesday, July 10, 13
  • 349. Por falar em alocar EquipeRocket *rocket = Só há uma equipe Rocket Wednesday, July 10, 13
  • 350. Singleton Wednesday, July 10, 13
  • 351. Singleton CUIDADO Wednesday, July 10, 13
  • 352. Pense na classe Wednesday, July 10, 13
  • 353. Pense na classe Armazena muita informação Wednesday, July 10, 13
  • 354. Singleton Wednesday, July 10, 13
  • 355. Singleton Nem toda classe precisa ser um singleton! Wednesday, July 10, 13
  • 356. Rá Wednesday, July 10, 13
  • 357. Open Source Wednesday, July 10, 13
  • 358. Open Source COCOAPODS Wednesday, July 10, 13
  • 359. Open Source COCOAPODS <3 Wednesday, July 10, 13
  • 360. AFNetworking Wednesday, July 10, 13
  • 361. AppCode Wednesday, July 10, 13
  • 362. Obigada pelo bate papo! Wednesday, July 10, 13
  • 363. Obigada pelo bate papo! @hannelita Wednesday, July 10, 13
  • 364. Obigada pelo bate papo! @hannelita hannelita@gmail.com Wednesday, July 10, 13
  • 365. Obigada pelo bate papo! @hannelita hannelita@gmail.com hannelita.com Wednesday, July 10, 13