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
platform :iospod 'AFNetworking', '1.0'pod 'JSONKit', '~> 1.4'
In a text editor, make a Podfile:
On the command line:> pod install
Also useful:> pod search <name>
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
You can make you own Podspec like this:
The number of third-party libraries
is growing.
http://www.cocoacontrols.com/
Ditching XCode
AppCode
#include <stdio.h>int main(){ printf("\nHello World\n"); 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, ...#>)...
Clang does code completion
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++)
There have always been alternatives.
Now there are more and 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 listXamarin (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.
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
App Services
TestFlight (https://testflightapp.com) /
HockeyApp (http://hockeyapp.net)
Not a comprehensive list
Localization (http://applingua.com)
Not a comprehensive list
Device Testing (http://www.keynotedeviceanywh
ere.com)
Not a comprehensive list
If you have a problem, some one has a service to solve it.
Not a comprehensive list
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.
Top Related