Desenvolvimento iOS em projetos reais - QCon Rio 2014

841a0284060fa6faa652e95a467dcc69?s=47 Marcelo Fabri
September 24, 2014

Desenvolvimento iOS em projetos reais - QCon Rio 2014

O desenvolvimento para iOS tem peculiaridades que ficam bem evidentes ao se desenvolver projetos complexos do mundo real, com várias pessoas envolvidas. Nesse contexto há várias práticas que se tornam fundamentais.

Nesta palestra, são explorados processos e ferramentas que auxiliam o desenvolvimento iOS e que frequentemente geram dúvidas – como integração contínua, distribuição interna e gerenciamento de dependências.

Alguns dos tópicos abordados, sempre com visão pragmática:

- Uso de repositório privado de dependências com CocoaPods;
- Compilação de um projeto via linha de comando e dicas relacionadas;
- Dicas para configuração do Jenkins para integração contínua de projetos iOS;
- Fluxo de distribuição interna via HockeyApp;
- Padronização e qualidade de código com Objective-Clean e OCLint.

841a0284060fa6faa652e95a467dcc69?s=128

Marcelo Fabri

September 24, 2014
Tweet

Transcript

  1. Desenvolvimento iOS em projetos reais @marcelofabri_

  2. None
  3. None
  4. None
  5. None
  6. None
  7. ~ 15 desenvolvedores iOS

  8. + 300 (potenciais) testers

  9. 3 fases

  10. 1. Desenvolvimento

  11. 2. Análise & Verificação

  12. 3. Distribuição interna

  13. 1. Desenvolvimento

  14. None
  15. Podfile platform :ios, '8.0' pod 'AFNetworking' pod 'Mantle'

  16. Repositório de Specs privado

  17. pod repo add NAME URL

  18. pod lib create AwesomeLib

  19. pod repo push REPO

  20. :path platform :ios, '8.0' pod 'AFNetworking' pod 'Mantle' pod 'AwesomeLib',

    :path => '~/AwesomeLib'
  21. Semantic Versioning semver.org

  22. {MAJOR}.{MINOR}.{PATCH}

  23. Reveal

  24. None
  25. ~ 15 desenvolvedores iOS

  26. Backgrounds diferentes

  27. Objective-Clean

  28. None
  29. None
  30. 2. Análise & Verificação

  31. Jenkins

  32. None
  33. AnsiColor GIT Plugin PMD Plugin xUnit Plugin Faux Pas Plugin

    jobtemplates Plugin
  34. xcodebuild

  35. None
  36. xcodebuild clean test | xcpretty -c -r junit

  37. None
  38. OCLint

  39. None
  40. FauxPas

  41. None
  42. None
  43. Deploymate

  44. None
  45. github.com/marcelofabri/ deploymate-to-pmd.py

  46. None
  47. 3. Distribuição interna

  48. Nightly & Release

  49. 4 passos

  50. 1. Trocar bundle ID diferentes versões, mesmo device

  51. 2. Alterar ícone

  52. None
  53. None
  54. iOS Tools at Flipboard NSConference Evan Doll

  55. None
  56. Facebook's iOS Infrastructure Mobile @ Scale Alan Cannistraro

  57. 3. Compilar

  58. xcodebuild -exportArchive

  59. 4. Upload

  60. HockeyApp

  61. None
  62. Limite de 100 devices

  63. Resetados ANUALMENTE

  64. (Além de controlar UDIDs)

  65. + 300 (potenciais) testers

  66. None
  67. None
  68. US$ 299,00

  69. D-U-N-S

  70. Sem acesso à App Store

  71. Sem IAP, iAds e Game Center

  72. Qualquer um consegue instalar

  73. [...] for companies who create proprietary, in- house iOS apps

    for internal deployment within the company only. — iOS Developer Enterprise Program FAQ
  74. Segurança?

  75. None
  76. None
  77. Somente o Jenkins tem acesso ao certificado enterprise

  78. None
  79. Crash Reporting

  80. None
  81. Adote Cedo

  82. Antes Tarde do que Nunca

  83. Até onde você quer ir?

  84. marcelofabri.com me@marcelofabri.com @marcelofabri_