SlideShare a Scribd company logo
The State of App
Development: 2013
• 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.
Third-Party Libraries
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
In a text editor, make a Podfile:
platform :ios
pod 'AFNetworking',   '1.0'
pod 'JSONKit',        '~> 1.4'




On the command line:
> pod install




Also useful:
> pod search <name>
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 Lamarche's original barcode generator
library 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 = '*.h'
end
end
end
end
end
end
end
end
end
end
end
end
The number of third-
  party libraries is
      growing.
http://www.cocoacontrols.com/
Ditching XCode
AppCode
State ofappdevelopment
Clang does code completion

#include <stdio.h>int main(){   printf("nHello
Worldn");    return 0;}




> clang -cc1 -xc -fsyntax-only -code-completion-at -:5:12 - < test.c

COMPLETION: __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, ...#>)
...
It is Possible to Autocomplete in Other
                Text Editors



• Vim has ClangComplete
• Emacs has YASnippet and autocomplete
• Sublime Text has SublimeClang
Not Objective-C (or C++, or C
         or Objective C++)
alternatives.

Now there are more
    and more.
Now there are more
    and more.
Now there are more
Stuff That Has Been
  Around for a while

• JavaScript frameworks (PhoneGap, Titanium,
  ...)
• Game frameworks: (Unity, Corona...)
Not a comprehensive list




RubyMotion has some attention because it
        allows access to UIKit.
Not a comprehensive list

  Xamarin (formerly MonoTouch, which
*has* been around for awhile) announced
2.0, which can write iOS apps in C# using
              Visual Studio.
Objective C will be Apple’s mainstay
 language for long time to come.
But other tools are available and have
 even been maturing for a long time.
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.
NOTE: At this meetup, we have never
had a presentation on developing in a
  language other than Objective C.
Testing
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/)
Integration Tests

• Frank (http://testingwithfrank.com)
• Kif (https://github.com/square/KIF)
• Zucchini (
  http://www.zucchiniframework.org)
Most of the standard practices from web
development are now available in mobile
       app development as well.
PonyDebugger


• https://github.com/square/PonyDebugger
Super Debugger


• http://shopify.github.com/superdb/
App Services
Not a comprehensive list

 TestFlight (https://testflightapp.com) /
  HockeyApp (http://hockeyapp.net)
Not a comprehensive list


   Hosted CI: https://hosted-ci.com
Not a comprehensive list


  Localization (http://applingua.com)
Not a comprehensive list


Crash Reports (http://try.crashlytics.com)
Not a comprehensive list

             Device Testing
(http://www.keynotedeviceanywhere.com
                   )
Not a comprehensive list

 If you have a problem, some one has a
           service to solve it.
One of the biggest changes is that the
ecosystem surrounding app development
       is growing at a rapid rate.
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.
But, following all of the developments is
      becoming harder and harder.
The moral of the story: the days of a
single developer making a successful app
are probably much harder, but following
the ecosystem will probably to give you
           the best advantage.

More Related Content

What's hot (18)

iOS Parallel Automation - Viktar Karanevich - Mobile Test Automation Meetup (...
iOS Parallel Automation - Viktar Karanevich - Mobile Test Automation Meetup (...iOS Parallel Automation - Viktar Karanevich - Mobile Test Automation Meetup (...
iOS Parallel Automation - Viktar Karanevich - Mobile Test Automation Meetup (...
Badoo
 
MDC2011 Android_ Webdriver Automation Test
MDC2011 Android_ Webdriver Automation TestMDC2011 Android_ Webdriver Automation Test
MDC2011 Android_ Webdriver Automation Test
Masud Parvez
 
Buck outside Valley
Buck outside ValleyBuck outside Valley
Buck outside Valley
Bruno Rocha
 
Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)
Nicholas Jansma
 
Console Apps: php artisan forthe:win
Console Apps: php artisan forthe:winConsole Apps: php artisan forthe:win
Console Apps: php artisan forthe:win
Joe Ferguson
 
Ionic2
Ionic2Ionic2
Ionic2
Jiayun Zhou
 
Step by step guide to build ionic hybrid app using cordova android
Step by step guide to build ionic hybrid app using cordova androidStep by step guide to build ionic hybrid app using cordova android
Step by step guide to build ionic hybrid app using cordova android
swagat parida
 
Appium: Mobile Automation Made Awesome
Appium: Mobile Automation Made AwesomeAppium: Mobile Automation Made Awesome
Appium: Mobile Automation Made Awesome
Netcetera
 
Composer Lightning Talk
Composer Lightning TalkComposer Lightning Talk
Composer Lightning Talk
Eric Johnson
 
CocoaHeads Rennes #13 : CocoaPods
CocoaHeads Rennes #13 : CocoaPodsCocoaHeads Rennes #13 : CocoaPods
CocoaHeads Rennes #13 : CocoaPods
CocoaHeadsRNS
 
Dockercon - Building a Chef cookbook testing pipeline with Drone.IO and Docker
Dockercon - Building a Chef cookbook testing pipeline with Drone.IO and DockerDockercon - Building a Chef cookbook testing pipeline with Drone.IO and Docker
Dockercon - Building a Chef cookbook testing pipeline with Drone.IO and Docker
pczarkowski
 
Dependent things dependency management for apple sw - slideshare
Dependent things   dependency management for apple sw - slideshareDependent things   dependency management for apple sw - slideshare
Dependent things dependency management for apple sw - slideshare
Cavelle Benjamin
 
TiConf EU 2014
TiConf EU 2014TiConf EU 2014
TiConf EU 2014
Ingo Muschenetz
 
Symfony Nano Framework
Symfony Nano FrameworkSymfony Nano Framework
Symfony Nano Framework
Loïc Faugeron
 
Introduction to Eclipse Che - Devoxx FR - 2017
Introduction to Eclipse Che - Devoxx FR - 2017Introduction to Eclipse Che - Devoxx FR - 2017
Introduction to Eclipse Che - Devoxx FR - 2017
stevanLM
 
Top 10 cross browser testing tools in 2021
Top 10 cross browser testing tools in 2021Top 10 cross browser testing tools in 2021
Top 10 cross browser testing tools in 2021
9Globes Technologies Pvt. Ltd.
 
Android Scripting
Android ScriptingAndroid Scripting
Android Scripting
Juan Gomez
 
10 Laravel packages everyone should know
10 Laravel packages everyone should know10 Laravel packages everyone should know
10 Laravel packages everyone should know
Povilas Korop
 
iOS Parallel Automation - Viktar Karanevich - Mobile Test Automation Meetup (...
iOS Parallel Automation - Viktar Karanevich - Mobile Test Automation Meetup (...iOS Parallel Automation - Viktar Karanevich - Mobile Test Automation Meetup (...
iOS Parallel Automation - Viktar Karanevich - Mobile Test Automation Meetup (...
Badoo
 
MDC2011 Android_ Webdriver Automation Test
MDC2011 Android_ Webdriver Automation TestMDC2011 Android_ Webdriver Automation Test
MDC2011 Android_ Webdriver Automation Test
Masud Parvez
 
Buck outside Valley
Buck outside ValleyBuck outside Valley
Buck outside Valley
Bruno Rocha
 
Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)
Nicholas Jansma
 
Console Apps: php artisan forthe:win
Console Apps: php artisan forthe:winConsole Apps: php artisan forthe:win
Console Apps: php artisan forthe:win
Joe Ferguson
 
Step by step guide to build ionic hybrid app using cordova android
Step by step guide to build ionic hybrid app using cordova androidStep by step guide to build ionic hybrid app using cordova android
Step by step guide to build ionic hybrid app using cordova android
swagat parida
 
Appium: Mobile Automation Made Awesome
Appium: Mobile Automation Made AwesomeAppium: Mobile Automation Made Awesome
Appium: Mobile Automation Made Awesome
Netcetera
 
Composer Lightning Talk
Composer Lightning TalkComposer Lightning Talk
Composer Lightning Talk
Eric Johnson
 
CocoaHeads Rennes #13 : CocoaPods
CocoaHeads Rennes #13 : CocoaPodsCocoaHeads Rennes #13 : CocoaPods
CocoaHeads Rennes #13 : CocoaPods
CocoaHeadsRNS
 
Dockercon - Building a Chef cookbook testing pipeline with Drone.IO and Docker
Dockercon - Building a Chef cookbook testing pipeline with Drone.IO and DockerDockercon - Building a Chef cookbook testing pipeline with Drone.IO and Docker
Dockercon - Building a Chef cookbook testing pipeline with Drone.IO and Docker
pczarkowski
 
Dependent things dependency management for apple sw - slideshare
Dependent things   dependency management for apple sw - slideshareDependent things   dependency management for apple sw - slideshare
Dependent things dependency management for apple sw - slideshare
Cavelle Benjamin
 
Symfony Nano Framework
Symfony Nano FrameworkSymfony Nano Framework
Symfony Nano Framework
Loïc Faugeron
 
Introduction to Eclipse Che - Devoxx FR - 2017
Introduction to Eclipse Che - Devoxx FR - 2017Introduction to Eclipse Che - Devoxx FR - 2017
Introduction to Eclipse Che - Devoxx FR - 2017
stevanLM
 
Android Scripting
Android ScriptingAndroid Scripting
Android Scripting
Juan Gomez
 
10 Laravel packages everyone should know
10 Laravel packages everyone should know10 Laravel packages everyone should know
10 Laravel packages everyone should know
Povilas Korop
 

Viewers also liked (14)

Aguinaldo Boquimpani - Marketers - Interactive TV Advertising
Aguinaldo Boquimpani - Marketers - Interactive TV AdvertisingAguinaldo Boquimpani - Marketers - Interactive TV Advertising
Aguinaldo Boquimpani - Marketers - Interactive TV Advertising
Aguinaldo Boquimpani
 
ViewController/State
ViewController/StateViewController/State
ViewController/State
gillygize
 
BCOP Be A Hero Program
BCOP Be A Hero ProgramBCOP Be A Hero Program
BCOP Be A Hero Program
Aaron Estacio
 
Categories
CategoriesCategories
Categories
gillygize
 
โรงแรม ที่พัก ทริปท่องเที่ยวต่างประเทศราคาถูก
โรงแรม ที่พัก ทริปท่องเที่ยวต่างประเทศราคาถูกโรงแรม ที่พัก ทริปท่องเที่ยวต่างประเทศราคาถูก
โรงแรม ที่พัก ทริปท่องเที่ยวต่างประเทศราคาถูก
Kittithat Uthansang
 
ความรู้เบื้องต้นเกี่ยวกับการแนะแนว
ความรู้เบื้องต้นเกี่ยวกับการแนะแนวความรู้เบื้องต้นเกี่ยวกับการแนะแนว
ความรู้เบื้องต้นเกี่ยวกับการแนะแนว
Calan Smith
 
Reactive cocoa
Reactive cocoaReactive cocoa
Reactive cocoa
gillygize
 
Two-StageCreation
Two-StageCreationTwo-StageCreation
Two-StageCreation
gillygize
 
Optimize llvm
Optimize llvmOptimize llvm
Optimize llvm
gillygize
 
App Idea - Meet your team
App Idea - Meet your teamApp Idea - Meet your team
App Idea - Meet your team
Cheah Eng Soon
 
SQLite with UWP
SQLite with UWPSQLite with UWP
SQLite with UWP
Cheah Eng Soon
 
Connecting to a REST API in iOS
Connecting to a REST API in iOSConnecting to a REST API in iOS
Connecting to a REST API in iOS
gillygize
 
Communication & public speaking
Communication & public speakingCommunication & public speaking
Communication & public speaking
Aaron Estacio
 
Azure With Windows Store App Development
Azure With Windows Store App DevelopmentAzure With Windows Store App Development
Azure With Windows Store App Development
Cheah Eng Soon
 
Aguinaldo Boquimpani - Marketers - Interactive TV Advertising
Aguinaldo Boquimpani - Marketers - Interactive TV AdvertisingAguinaldo Boquimpani - Marketers - Interactive TV Advertising
Aguinaldo Boquimpani - Marketers - Interactive TV Advertising
Aguinaldo Boquimpani
 
ViewController/State
ViewController/StateViewController/State
ViewController/State
gillygize
 
BCOP Be A Hero Program
BCOP Be A Hero ProgramBCOP Be A Hero Program
BCOP Be A Hero Program
Aaron Estacio
 
โรงแรม ที่พัก ทริปท่องเที่ยวต่างประเทศราคาถูก
โรงแรม ที่พัก ทริปท่องเที่ยวต่างประเทศราคาถูกโรงแรม ที่พัก ทริปท่องเที่ยวต่างประเทศราคาถูก
โรงแรม ที่พัก ทริปท่องเที่ยวต่างประเทศราคาถูก
Kittithat Uthansang
 
ความรู้เบื้องต้นเกี่ยวกับการแนะแนว
ความรู้เบื้องต้นเกี่ยวกับการแนะแนวความรู้เบื้องต้นเกี่ยวกับการแนะแนว
ความรู้เบื้องต้นเกี่ยวกับการแนะแนว
Calan Smith
 
Reactive cocoa
Reactive cocoaReactive cocoa
Reactive cocoa
gillygize
 
Two-StageCreation
Two-StageCreationTwo-StageCreation
Two-StageCreation
gillygize
 
Optimize llvm
Optimize llvmOptimize llvm
Optimize llvm
gillygize
 
App Idea - Meet your team
App Idea - Meet your teamApp Idea - Meet your team
App Idea - Meet your team
Cheah Eng Soon
 
Connecting to a REST API in iOS
Connecting to a REST API in iOSConnecting to a REST API in iOS
Connecting to a REST API in iOS
gillygize
 
Communication & public speaking
Communication & public speakingCommunication & public speaking
Communication & public speaking
Aaron Estacio
 
Azure With Windows Store App Development
Azure With Windows Store App DevelopmentAzure With Windows Store App Development
Azure With Windows Store App Development
Cheah Eng Soon
 

Similar to State ofappdevelopment (20)

Building Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsBuilding Cross-Platform Mobile Apps
Building Cross-Platform Mobile Apps
Troy Miles
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
Nicholas Jansma
 
Cross-Platform Mobile Development in Visual Studio
Cross-Platform Mobile Development in Visual StudioCross-Platform Mobile Development in Visual Studio
Cross-Platform Mobile Development in Visual Studio
bryan costanich
 
Tutorial: Develop Mobile Applications with AngularJS
Tutorial: Develop Mobile Applications with AngularJSTutorial: Develop Mobile Applications with AngularJS
Tutorial: Develop Mobile Applications with AngularJS
Philipp Burgmer
 
(Christian heilman) firefox
(Christian heilman) firefox(Christian heilman) firefox
(Christian heilman) firefox
NAVER D2
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3
Asher Martin
 
[2015/2016] Apache Cordova
[2015/2016] Apache Cordova[2015/2016] Apache Cordova
[2015/2016] Apache Cordova
Ivano Malavolta
 
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
Srijan Technologies
 
Apache cordova
Apache cordovaApache cordova
Apache cordova
Carlo Bernaschina
 
How to Build & Use OpenCL on OpenCV & Android NDK
How to Build & Use OpenCL on OpenCV & Android NDKHow to Build & Use OpenCL on OpenCV & Android NDK
How to Build & Use OpenCL on OpenCV & Android NDK
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
 
Apache Cordova
Apache CordovaApache Cordova
Apache Cordova
Ivano Malavolta
 
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
jaxLondonConference
 
Run your Java apps on Cloud Foundry
Run your Java apps on Cloud FoundryRun your Java apps on Cloud Foundry
Run your Java apps on Cloud Foundry
Andy Piper
 
Apache Cordova 4.x
Apache Cordova 4.xApache Cordova 4.x
Apache Cordova 4.x
Ivano Malavolta
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
catherinewall
 
Continuous integration by Rémy Virin
Continuous integration by Rémy VirinContinuous integration by Rémy Virin
Continuous integration by Rémy Virin
CocoaHeads France
 
Fixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World RomaniaFixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World Romania
Christian Heilmann
 
Android Workshop
Android WorkshopAndroid Workshop
Android Workshop
Junda Ong
 
Codename one
Codename oneCodename one
Codename one
Software Infrastructure
 
Cordova: APIs and instruments
Cordova: APIs and instrumentsCordova: APIs and instruments
Cordova: APIs and instruments
Ivano Malavolta
 
Building Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsBuilding Cross-Platform Mobile Apps
Building Cross-Platform Mobile Apps
Troy Miles
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
Nicholas Jansma
 
Cross-Platform Mobile Development in Visual Studio
Cross-Platform Mobile Development in Visual StudioCross-Platform Mobile Development in Visual Studio
Cross-Platform Mobile Development in Visual Studio
bryan costanich
 
Tutorial: Develop Mobile Applications with AngularJS
Tutorial: Develop Mobile Applications with AngularJSTutorial: Develop Mobile Applications with AngularJS
Tutorial: Develop Mobile Applications with AngularJS
Philipp Burgmer
 
(Christian heilman) firefox
(Christian heilman) firefox(Christian heilman) firefox
(Christian heilman) firefox
NAVER D2
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3
Asher Martin
 
[2015/2016] Apache Cordova
[2015/2016] Apache Cordova[2015/2016] Apache Cordova
[2015/2016] Apache Cordova
Ivano Malavolta
 
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
Srijan Technologies
 
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
jaxLondonConference
 
Run your Java apps on Cloud Foundry
Run your Java apps on Cloud FoundryRun your Java apps on Cloud Foundry
Run your Java apps on Cloud Foundry
Andy Piper
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
catherinewall
 
Continuous integration by Rémy Virin
Continuous integration by Rémy VirinContinuous integration by Rémy Virin
Continuous integration by Rémy Virin
CocoaHeads France
 
Fixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World RomaniaFixing the mobile web - Internet World Romania
Fixing the mobile web - Internet World Romania
Christian Heilmann
 
Android Workshop
Android WorkshopAndroid Workshop
Android Workshop
Junda Ong
 
Cordova: APIs and instruments
Cordova: APIs and instrumentsCordova: APIs and instruments
Cordova: APIs and instruments
Ivano Malavolta
 

State ofappdevelopment

  • 1. The State of App Development: 2013
  • 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.
  • 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. In a text editor, make a Podfile: platform :ios pod 'AFNetworking', '1.0' pod 'JSONKit', '~> 1.4' On the command line: > pod install Also useful: > pod search <name>
  • 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 Lamarche's original barcode generator library 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" => "[email protected]" } s.source = { :git => " https://github.com/netshade/Cocoa-Touch-Barcodes.git", :commit => "d0aabd00efa" } s.platform = :ios s.source_files = '' s.public_header_files = '*.h' end end end end end end end end end end end end
  • 7. The number of third- party libraries is growing.
  • 12. Clang does code completion #include <stdio.h>int main(){ printf("nHello Worldn"); return 0;} > clang -cc1 -xc -fsyntax-only -code-completion-at -:5:12 - < test.c COMPLETION: __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, ...#>) ...
  • 13. It is Possible to Autocomplete in Other Text Editors • Vim has ClangComplete • Emacs has YASnippet and autocomplete • Sublime Text has SublimeClang
  • 14. Not Objective-C (or C++, or C or Objective C++)
  • 15. alternatives. Now there are more and more. Now there are more and more. Now there are more
  • 16. Stuff That Has Been Around for a while • JavaScript frameworks (PhoneGap, Titanium, ...) • Game frameworks: (Unity, Corona...)
  • 17. Not a comprehensive list RubyMotion has some attention because it allows access to UIKit.
  • 18. Not a comprehensive list Xamarin (formerly MonoTouch, which *has* been around for awhile) announced 2.0, which can write iOS apps in C# using Visual Studio.
  • 19. Objective C will be Apple’s mainstay language for long time to come.
  • 20. But other tools are available and have even been maturing for a long time.
  • 21. 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.
  • 22. NOTE: At this meetup, we have never had a presentation on developing in a language other than Objective C.
  • 24. 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/)
  • 25. Integration Tests • Frank (http://testingwithfrank.com) • Kif (https://github.com/square/KIF) • Zucchini ( http://www.zucchiniframework.org)
  • 26. Most of the standard practices from web development are now available in mobile app development as well.
  • 30. Not a comprehensive list TestFlight (https://testflightapp.com) / HockeyApp (http://hockeyapp.net)
  • 31. Not a comprehensive list Hosted CI: https://hosted-ci.com
  • 32. Not a comprehensive list Localization (http://applingua.com)
  • 33. Not a comprehensive list Crash Reports (http://try.crashlytics.com)
  • 34. Not a comprehensive list Device Testing (http://www.keynotedeviceanywhere.com )
  • 35. Not a comprehensive list If you have a problem, some one has a service to solve it.
  • 36. One of the biggest changes is that the ecosystem surrounding app development is growing at a rapid rate.
  • 37. 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.
  • 38. But, following all of the developments is becoming harder and harder.
  • 39. The moral of the story: the days of a single developer making a successful app are probably much harder, but following the ecosystem will probably to give you the best advantage.