SlideShare une entreprise Scribd logo
1  sur  39
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
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.

Contenu connexe

Tendances

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 TestMasud Parvez
 
Buck outside Valley
Buck outside ValleyBuck outside Valley
Buck outside ValleyBruno 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:winJoe 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 androidswagat parida
 
Appium: Mobile Automation Made Awesome
Appium: Mobile Automation Made AwesomeAppium: Mobile Automation Made Awesome
Appium: Mobile Automation Made AwesomeNetcetera
 
Composer Lightning Talk
Composer Lightning TalkComposer Lightning Talk
Composer Lightning TalkEric Johnson
 
CocoaHeads Rennes #13 : CocoaPods
CocoaHeads Rennes #13 : CocoaPodsCocoaHeads Rennes #13 : CocoaPods
CocoaHeads Rennes #13 : CocoaPodsCocoaHeadsRNS
 
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 Dockerpczarkowski
 
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 - slideshareCavelle Benjamin
 
Symfony Nano Framework
Symfony Nano FrameworkSymfony Nano Framework
Symfony Nano FrameworkLoï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 - 2017stevanLM
 
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !Florent BENOIT
 
Android Scripting
Android ScriptingAndroid Scripting
Android ScriptingJuan Gomez
 
10 Laravel packages everyone should know
10 Laravel packages everyone should know10 Laravel packages everyone should know
10 Laravel packages everyone should knowPovilas Korop
 

Tendances (20)

DevOps Heroes 2019
DevOps Heroes 2019DevOps Heroes 2019
DevOps Heroes 2019
 
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 (...
 
MDC2011 Android_ Webdriver Automation Test
MDC2011 Android_ Webdriver Automation TestMDC2011 Android_ Webdriver Automation Test
MDC2011 Android_ Webdriver Automation Test
 
Buck outside Valley
Buck outside ValleyBuck outside Valley
Buck outside Valley
 
Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)
 
Console Apps: php artisan forthe:win
Console Apps: php artisan forthe:winConsole Apps: php artisan forthe:win
Console Apps: php artisan forthe:win
 
Ionic2
Ionic2Ionic2
Ionic2
 
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
 
Appium: Mobile Automation Made Awesome
Appium: Mobile Automation Made AwesomeAppium: Mobile Automation Made Awesome
Appium: Mobile Automation Made Awesome
 
Composer Lightning Talk
Composer Lightning TalkComposer Lightning Talk
Composer Lightning Talk
 
CocoaHeads Rennes #13 : CocoaPods
CocoaHeads Rennes #13 : CocoaPodsCocoaHeads Rennes #13 : CocoaPods
CocoaHeads Rennes #13 : CocoaPods
 
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
 
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
 
TiConf EU 2014
TiConf EU 2014TiConf EU 2014
TiConf EU 2014
 
Symfony Nano Framework
Symfony Nano FrameworkSymfony Nano Framework
Symfony Nano Framework
 
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
 
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !
 
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
 
Android Scripting
Android ScriptingAndroid Scripting
Android Scripting
 
10 Laravel packages everyone should know
10 Laravel packages everyone should know10 Laravel packages everyone should know
10 Laravel packages everyone should know
 

En vedette

Aguinaldo Boquimpani - Marketers - Interactive TV Advertising
Aguinaldo Boquimpani - Marketers - Interactive TV AdvertisingAguinaldo Boquimpani - Marketers - Interactive TV Advertising
Aguinaldo Boquimpani - Marketers - Interactive TV AdvertisingAguinaldo Boquimpani
 
ViewController/State
ViewController/StateViewController/State
ViewController/Stategillygize
 
BCOP Be A Hero Program
BCOP Be A Hero ProgramBCOP Be A Hero Program
BCOP Be A Hero ProgramAaron Estacio
 
โรงแรม ที่พัก ทริปท่องเที่ยวต่างประเทศราคาถูก
โรงแรม ที่พัก ทริปท่องเที่ยวต่างประเทศราคาถูกโรงแรม ที่พัก ทริปท่องเที่ยวต่างประเทศราคาถูก
โรงแรม ที่พัก ทริปท่องเที่ยวต่างประเทศราคาถูกKittithat Uthansang
 
ความรู้เบื้องต้นเกี่ยวกับการแนะแนว
ความรู้เบื้องต้นเกี่ยวกับการแนะแนวความรู้เบื้องต้นเกี่ยวกับการแนะแนว
ความรู้เบื้องต้นเกี่ยวกับการแนะแนวCalan Smith
 
Reactive cocoa
Reactive cocoaReactive cocoa
Reactive cocoagillygize
 
Two-StageCreation
Two-StageCreationTwo-StageCreation
Two-StageCreationgillygize
 
Optimize llvm
Optimize llvmOptimize llvm
Optimize llvmgillygize
 
App Idea - Meet your team
App Idea - Meet your teamApp Idea - Meet your team
App Idea - Meet your teamCheah 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 iOSgillygize
 
Communication & public speaking
Communication & public speakingCommunication & public speaking
Communication & public speakingAaron Estacio
 
Azure With Windows Store App Development
Azure With Windows Store App DevelopmentAzure With Windows Store App Development
Azure With Windows Store App DevelopmentCheah Eng Soon
 

En vedette (14)

Aguinaldo Boquimpani - Marketers - Interactive TV Advertising
Aguinaldo Boquimpani - Marketers - Interactive TV AdvertisingAguinaldo Boquimpani - Marketers - Interactive TV Advertising
Aguinaldo Boquimpani - Marketers - Interactive TV Advertising
 
ViewController/State
ViewController/StateViewController/State
ViewController/State
 
BCOP Be A Hero Program
BCOP Be A Hero ProgramBCOP Be A Hero Program
BCOP Be A Hero Program
 
Categories
CategoriesCategories
Categories
 
โรงแรม ที่พัก ทริปท่องเที่ยวต่างประเทศราคาถูก
โรงแรม ที่พัก ทริปท่องเที่ยวต่างประเทศราคาถูกโรงแรม ที่พัก ทริปท่องเที่ยวต่างประเทศราคาถูก
โรงแรม ที่พัก ทริปท่องเที่ยวต่างประเทศราคาถูก
 
ความรู้เบื้องต้นเกี่ยวกับการแนะแนว
ความรู้เบื้องต้นเกี่ยวกับการแนะแนวความรู้เบื้องต้นเกี่ยวกับการแนะแนว
ความรู้เบื้องต้นเกี่ยวกับการแนะแนว
 
Reactive cocoa
Reactive cocoaReactive cocoa
Reactive cocoa
 
Two-StageCreation
Two-StageCreationTwo-StageCreation
Two-StageCreation
 
Optimize llvm
Optimize llvmOptimize llvm
Optimize llvm
 
App Idea - Meet your team
App Idea - Meet your teamApp Idea - Meet your team
App Idea - Meet your team
 
SQLite with UWP
SQLite with UWPSQLite with UWP
SQLite with UWP
 
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
 
Communication & public speaking
Communication & public speakingCommunication & public speaking
Communication & public speaking
 
Azure With Windows Store App Development
Azure With Windows Store App DevelopmentAzure With Windows Store App Development
Azure With Windows Store App Development
 

Similaire à State ofappdevelopment

Building Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsBuilding Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsTroy Miles
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium IntroNicholas 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 Studiobryan costanich
 
Tutorial: Develop Mobile Applications with AngularJS
Tutorial: Develop Mobile Applications with AngularJSTutorial: Develop Mobile Applications with AngularJS
Tutorial: Develop Mobile Applications with AngularJSPhilipp Burgmer
 
(Christian heilman) firefox
(Christian heilman) firefox(Christian heilman) firefox
(Christian heilman) firefoxNAVER D2
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Asher Martin
 
[2015/2016] Apache Cordova
[2015/2016] Apache Cordova[2015/2016] Apache Cordova
[2015/2016] Apache CordovaIvano 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 AppiumSrijan Technologies
 
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 FoundryAndy Piper
 
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
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Enginecatherinewall
 
Continuous integration by Rémy Virin
Continuous integration by Rémy VirinContinuous integration by Rémy Virin
Continuous integration by Rémy VirinCocoaHeads 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 RomaniaChristian Heilmann
 
Android Workshop
Android WorkshopAndroid Workshop
Android WorkshopJunda Ong
 
Cordova: APIs and instruments
Cordova: APIs and instrumentsCordova: APIs and instruments
Cordova: APIs and instrumentsIvano Malavolta
 

Similaire à State ofappdevelopment (20)

Building Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsBuilding Cross-Platform Mobile Apps
Building Cross-Platform Mobile Apps
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
 
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
 
Tutorial: Develop Mobile Applications with AngularJS
Tutorial: Develop Mobile Applications with AngularJSTutorial: Develop Mobile Applications with AngularJS
Tutorial: Develop Mobile Applications with AngularJS
 
(Christian heilman) firefox
(Christian heilman) firefox(Christian heilman) firefox
(Christian heilman) firefox
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3
 
[2015/2016] Apache Cordova
[2015/2016] Apache Cordova[2015/2016] Apache Cordova
[2015/2016] Apache Cordova
 
[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
 
Apache cordova
Apache cordovaApache cordova
Apache cordova
 
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
 
Apache Cordova
Apache CordovaApache Cordova
Apache Cordova
 
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
 
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)
 
Apache Cordova 4.x
Apache Cordova 4.xApache Cordova 4.x
Apache Cordova 4.x
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
 
Continuous integration by Rémy Virin
Continuous integration by Rémy VirinContinuous integration by Rémy Virin
Continuous integration by Rémy Virin
 
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
 
Android Workshop
Android WorkshopAndroid Workshop
Android Workshop
 
Codename one
Codename oneCodename one
Codename one
 
Cordova: APIs and instruments
Cordova: APIs and instrumentsCordova: APIs and instruments
Cordova: APIs and instruments
 

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" => "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
  • 7. The number of third- party libraries is growing.
  • 11.
  • 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.