State ofappdevelopment

466 views

Published on

A presentation I gave at the March 2013 Tokyo iOS Meetup. It covers some of the trends I see emerging in App Development.

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

No Downloads
Views
Total views
466
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

State ofappdevelopment

  1. 1. The State of AppDevelopment: 2013
  2. 2. • 4 years ago: the single developer.• The status quo for iOS Development is changing rapidly.• Many of these changes are a result of the ecosystem surrounding the iOS platform.
  3. 3. Third-Party Libraries
  4. 4. CocoaPods• CocoaPod is a dependency manager similar to Ruby gems.• This is the biggest change to my workflow as an iOS Developer.• http://cocoapods.org
  5. 5. In a text editor, make a Podfile:platform :iospod AFNetworking, 1.0pod JSONKit, ~> 1.4On the command line:> pod installAlso useful:> pod search <name>
  6. 6. You can make you own Podspec like this:Pod::Spec.new do |s| s.name = "Cocoa-Touch-Barcodes" s.version = "0.0.1" s.summary = "Fork of Jeff Lamarches original barcode generatorlibrary at http://code.google.com/p/cocoabarcodes/" s.homepage = "http://code.google.com/p/cocoabarcodes/" s.license = { :type => New BSD, :text => "" } s.author = { "Jeff LaMarche" => "jeff.lamarche@gmail.com" } s.source = { :git => "https://github.com/netshade/Cocoa-Touch-Barcodes.git", :commit =>"d0aabd00efa" } s.platform = :ios s.source_files = s.public_header_files = *.hendendendendendendendendendendendend
  7. 7. The number of third- party libraries is growing.
  8. 8. http://www.cocoacontrols.com/
  9. 9. Ditching XCode
  10. 10. AppCode
  11. 11. Clang does code completion#include <stdio.h>int main(){ printf("nHelloWorldn"); return 0;}> clang -cc1 -xc -fsyntax-only -code-completion-at -:5:12 - < test.cCOMPLETION: __func__COMPLETION: __FUNCTION__COMPLETION:__PRETTY_FUNCTION__COMPLETION: asprintf : [#int#]asprintf(<#char **#>,<#const char *, ...#>)COMPLETION: clearerr : [#void#]clearerr(<#FILE*#>)COMPLETION: ctermid : [#char *#]ctermid(<#char *#>)COMPLETION:ctermid_r : [#char *#]ctermid_r(<#char *#>)COMPLETION: dprintf :[#int#]dprintf(<#int#>, <#const char *restrict, ...#>)COMPLETION:fclose : [#int#]fclose(<#FILE *#>)COMPLETION: fdopen : [#FILE*#]fdopen(<#int#>, <#const char *#>)...COMPLETION: printf : [#int#]printf(<#const char *restrict, ...#>)...
  12. 12. It is Possible to Autocomplete in Other Text Editors• Vim has ClangComplete• Emacs has YASnippet and autocomplete• Sublime Text has SublimeClang
  13. 13. Not Objective-C (or C++, or C or Objective C++)
  14. 14. alternatives.Now there are more and more.Now there are more and more.Now there are more
  15. 15. Stuff That Has Been Around for a while• JavaScript frameworks (PhoneGap, Titanium, ...)• Game frameworks: (Unity, Corona...)
  16. 16. Not a comprehensive listRubyMotion has some attention because it allows access to UIKit.
  17. 17. Not a comprehensive list Xamarin (formerly MonoTouch, which*has* been around for awhile) announced2.0, which can write iOS apps in C# using Visual Studio.
  18. 18. Objective C will be Apple’s mainstay language for long time to come.
  19. 19. But other tools are available and have even been maturing for a long time.
  20. 20. One reason is that Apple used to reject alternative programming languages. That fear is almost completely gone. That fear is almost completely gone. That fear is almost completely gone.
  21. 21. NOTE: At this meetup, we have neverhad a presentation on developing in a language other than Objective C.
  22. 22. Testing
  23. 23. Unit Tests• GHUnit (https://github.com/gabriel/gh-unit)• Cedar (https://github.com/pivotal/cedar)• Kiwi (https://github.com/allending/Kiwi)• WiteBox ( http://code.google.com/p/witebox/)
  24. 24. Integration Tests• Frank (http://testingwithfrank.com)• Kif (https://github.com/square/KIF)• Zucchini ( http://www.zucchiniframework.org)
  25. 25. Most of the standard practices from webdevelopment are now available in mobile app development as well.
  26. 26. PonyDebugger• https://github.com/square/PonyDebugger
  27. 27. Super Debugger• http://shopify.github.com/superdb/
  28. 28. App Services
  29. 29. Not a comprehensive list TestFlight (https://testflightapp.com) / HockeyApp (http://hockeyapp.net)
  30. 30. Not a comprehensive list Hosted CI: https://hosted-ci.com
  31. 31. Not a comprehensive list Localization (http://applingua.com)
  32. 32. Not a comprehensive listCrash Reports (http://try.crashlytics.com)
  33. 33. Not a comprehensive list Device Testing(http://www.keynotedeviceanywhere.com )
  34. 34. Not a comprehensive list If you have a problem, some one has a service to solve it.
  35. 35. One of the biggest changes is that theecosystem surrounding app development is growing at a rapid rate.
  36. 36. People who recognize these changes, and that things are changing, will be able to develop quality apps more quickly by making use of these tools.
  37. 37. But, following all of the developments is becoming harder and harder.
  38. 38. The moral of the story: the days of asingle developer making a successful appare probably much harder, but followingthe ecosystem will probably to give you the best advantage.

×