37
How to be an Independent Mobile Application Dev By Terence J. Grant [email protected]

How to be an Independent Mobile Dev by TJ Grant

Embed Size (px)

Citation preview

Page 1: How to be an Independent Mobile Dev by TJ Grant

How to be an Independent Mobile Application Dev

By Terence J. [email protected]

Page 2: How to be an Independent Mobile Dev by TJ Grant

About Terence

For my clients• Freelance iPhone / iPad contractor, working

mostly with streaming audio and video.• Working out of Van Nuys, have worked with

companies in L.A., Irvine, Silicon Valley.• Some work is on site, some is remote.• Surprisingly, I’ve gotten a lot of non-iPhone

work via my iPhone experience.

Page 3: How to be an Independent Mobile Dev by TJ Grant

Companies I’ve worked for

• EA – Electronic Arts – I worked on the Madden Football and Nascar Racing franchises for PlayStation 2 and Xbox

• Adidas America – I worked on a delivery shipment program using Palm Pilot devices when “handheld computers” were still fairly new

• Final Draft – A company I’ve most recently worked with, doing cross-platform development for Mac and Windows.

Page 4: How to be an Independent Mobile Dev by TJ Grant

My Projects

• Currently have games in the App store, simple games that generate a little income.– More for portfolio purposes than anything else– But they’ve already paid for themselves in terms of sunk

costs. (App store fees, etc.)• Actively developing games with OpenGL ES 2.0 for

iPhone, iPad, and Mac OS X.– (OpenGL is a 3D Graphics API.)

• I’m investigating Windows Phone 8 as a viable platform as well.

Page 5: How to be an Independent Mobile Dev by TJ Grant

What’s out there to develop for?

• Phones phones phones!– There’s iPhone– Android, Google’s offering– Windows Phone 8, which is based on Microsoft’s

new APIs• Pads– There’s the iPad – Runs iOS– Galaxy Tab – Runs Android– Microsoft Surface – Runs Windows 8

Page 6: How to be an Independent Mobile Dev by TJ Grant

Your development environment

• For iPhone / iPad, you’ll need a Mac.• For Android, you can develop on Mac, PC, Linux.• For Windows Phone, you have to run Windows.

Don’t have a Mac?Or have a Mac and don’t run Windows?Are there any other options?

Page 7: How to be an Independent Mobile Dev by TJ Grant

Virtual Machines

• If you own a Mac, two pieces of software help you conquer this problem:– VMWare Fusion– Parallels

• Each lets you run Windows– like Windows 7 or Windows 8, Linux (Ubuntu), even Android itself, without having to have two machines.

• Similar products (by the same companies) are available for PC. Rumor has it you can run Mac on Windows, so there may be possibilities there.

Page 8: How to be an Independent Mobile Dev by TJ Grant

What do you own?

• So what should I develop for?– iPhone, Android, iPad, Blackberry?

• A good strategy is to start with what you have and use already– If you have an iPhone, start with that. If you’ve been an

Android fan, start there instead.– You already have a feel for what your device is like, and you’d

be surprised at the little differences between platforms, if you’re not used to them.

– Don’t own an iPhone, Android, or other SmartPhone? May be time to invest in one, if you’re looking to get into this market.

Page 9: How to be an Independent Mobile Dev by TJ Grant

What’s your current skill set?

• Are you a “dyed in the wool” C or C++ guy/gal already? Use that to your advantage!

• Not a hardcore programmer?– Well, have you ever made a web site?– There’s tools that can already help you with design,

and you can still publish apps that are HTML based…• Not a web designer either?– Well, may be time to learn– Or, you can always collaborate with a programmer…

Page 10: How to be an Independent Mobile Dev by TJ Grant

How to set up your dev environment…

• Apple provides a compiler, called Xcode– Which allows you to program for iPhone, iPad, and Mac Desktop– Apple prefers you use Objective C, but allows for C and C++

• Microsoft provides their solution, Visual Studio– Which is essentially the same thing, but allows you to program Windows

Phone, and for Windows all the way from Windows XP to Windows 8 itself.– Microsoft prefers you use C#, but (now) allows for C and C++

• Google, for Android devices, points you to use a solution called “Eclipse”– Eclipse is an Open Source product, that can do more than just Android

development– Google wants you to use Java, but also allows for C and C++

• Best news for all of this is that 99% of what’s out there is free!

Page 11: How to be an Independent Mobile Dev by TJ Grant

How to learn all those crazy languages

• Objective C, C#, Java… do I have to learn any of these?– Well, yes and no. You do have to learn the ins and outs a

little.– If you want to make “native” apps, speak what the

“natives” speak.• Pros: Learning the native language tends to give you

more control over the device.• Cons: But only for the devices you’re learning on.

And there may be a learning curve.

Page 12: How to be an Independent Mobile Dev by TJ Grant

I ain’t learnin’ nothin!

• That’s okay too! (Well, kinda.) There are other tools you can use:– PhoneGap – This tool allows you to make an application

based almost purely in HTML / JavaScript.– Adobe Air – Adobe’s offering allows you to use familiar

things like Flash, HTML, ActionScript, and the like.– Unity and Unity3d – This is a tool that allows you to publish

2d and 3d games in a cross-platform manner.• So you’ll still have to learn something either way, but

you have many options in what way you want to learn.

Page 13: How to be an Independent Mobile Dev by TJ Grant

Let’s make a game!

• What kind of games do you want to make?– Simple?– Flashy?– Immersive?

Page 14: How to be an Independent Mobile Dev by TJ Grant

Simple games

• You can make super simple games, like the ones you played as a kid, or the ones your parents / grandparents taught you.

• Such games have simple logic, easy enough that you can implement them in a fairly short time period, without spending weeks or months spinning your wheels.

• Games such as Tic-Tac-Toe, The 15-Puzzle, Concentration, BlackJack

• The logic is simple, and the art assets, amount of visual representation is simple too.

Page 15: How to be an Independent Mobile Dev by TJ Grant

Card Games• Card games you might consider the next level up from a

simple game.• The rules of Solitaire are pretty simple, but now you have to

draw 52 cards on screen at once, and keep track of their places.

• How will you place them on screen?• Is each card “drag-able,” even “touch-able,” do you have

buttons, etc?• Even a simple game can be complicated to write.• Now think about the rules of Poker, Bridge, Gin Rummy…

things get messy pretty quick.

Page 16: How to be an Independent Mobile Dev by TJ Grant

Flash Games

• iPhone doesn’t run Flash, but that doesn’t mean you can’t make Flash-style games.

• Angry Birds, Fruit Ninja, Jetpack Joyride are good examples

• Highly animated, media rich, arcade-style gaming– people dig it!

Page 17: How to be an Independent Mobile Dev by TJ Grant

Immersive Games

• Story rich• Massively multiplayer• Epic adventures

• These are the kind of games big studios make, and an indie developer can too, but realize the more complicated something is, the more time it’ll take to make.

Page 18: How to be an Independent Mobile Dev by TJ Grant

Where do you start?

• What do most games we can think of have in common?

• There’s things you can do to “win,” and there’s things you can do to “lose.”

• There’s a score of some kind, and there’s a “high score” you gotta beat.

• Whenever you “do something,” something else happens as a response.

Page 19: How to be an Independent Mobile Dev by TJ Grant

So if it’s that simple…

• Let’s start with a small game you already know…– Tic Tac Toe• You can do things to win,• You can do things to lose,• We can keep score between players.• We can also do it as two-player without having to do

any crazy artificial intelligence or anything like that.

Page 20: How to be an Independent Mobile Dev by TJ Grant

Add some polish…

• Adding color, art assets, and animation can take you a long way.

• You can add player names• Artificial Intelligence• Let’s take a look at someone else’s version of

Tic-Tac-Toe:– http://youtu.be/-hdSMWNKPmM

Page 21: How to be an Independent Mobile Dev by TJ Grant

I’d buy that for a dollar!

• Well, except that guy’s version is free.• In fact, many simple games like this are free.• However, there are people who will pay for

your version.– Whether they’re friends, family, co-workers– Perhaps they’re just iPhone game enthusiasts?– But they do exist.

Page 22: How to be an Independent Mobile Dev by TJ Grant

How to build your skills

• There’s so many things you can do…– Make your own game– Forget games, just make your own app!– Learn a new programming language– Collaborate with a friend– Work for a start-up– Work for an established company– Work for yourself!

Page 23: How to be an Independent Mobile Dev by TJ Grant

The wonderful world of freelancing

• Types of work that’s out there– Full-time employment– Contracting– Freelancing– Start-ups– Setting up your own Store-front

• There’s pros and cons to each approach.• Something that’s a con for me, may be a pro for

you. It’s all in how you view it.

Page 24: How to be an Independent Mobile Dev by TJ Grant

Full-time employment

• Pros: Steady paycheck, health benefits, stable work environment

• Cons: Often just one project (limited growth), very long term, company tends want to "own" your work in and out of office

Page 25: How to be an Independent Mobile Dev by TJ Grant

Contracting

• Pros: Typically higher "per hour" than a full-time, can be extended, not permanent

• Cons: Unstable teams, no benefits, no sick days, pay your own taxes, sometimes end early

Page 26: How to be an Independent Mobile Dev by TJ Grant

Freelancing

• Pros: More "creative" control over projects, your free time, and you can build a portfolio

• Cons: Can be riskier, may go "too long" term or want too many quick gains over a short term.

Page 27: How to be an Independent Mobile Dev by TJ Grant

Start-ups

• Startups that aren’t funded are essentially the same as freelance.

• If they’re funded, they’re more akin to Contracts, but typically with longer work hours and more commitment and dedication.

Page 28: How to be an Independent Mobile Dev by TJ Grant

Your own store-front

• Pros: Similar to a start-up, but you publish your own apps; you can just publish apps as you please.

• Cons: You might have "make this" your job, and you have to keep publishing new ideas, keep publicizing, etc. Also, there's lots of competition that might be better, and many give away their stuff for free.

Page 29: How to be an Independent Mobile Dev by TJ Grant

What drives you now, and what do you want to accomplish?

• So there’s lots of options, probably more than you thought.• But what are your goals?– Do you want to make your own apps?– Do you want to make someone else’s apps?– Do you want to “be the guy” making the app, or do you want to

“find the guy” to help with your app?• Always keep your eyes on the end-goal.• Deviation from a goal is okay, as long as you’re learning a

skill, but go too far and you’ll be on the different road altogether.

Page 30: How to be an Independent Mobile Dev by TJ Grant

Networking with peers, and collaborative projects

• Networking with peers is good–– It’s a form of marketing your services, sure…– But you’ll also be surprised who you meet too–

you might meet someone who has a service you didn’t even know you needed!

– And hell, make a friend while you’re at it; couldn’t hurt, right?

Page 31: How to be an Independent Mobile Dev by TJ Grant

What you can learn from the big guys

• EA does games• Apple does hardware and software• Google is a search engine that somehow does

everything• Microsoft is that 800 pound gorilla

Surely there’s something we can learn from them, they’re in our market, right?But what?

Page 32: How to be an Independent Mobile Dev by TJ Grant

Electronic Arts

• These are just vague generalities, but let's go with it…– EA publishes games on multiple platforms

(sometimes)– and they typically have a tie-in game for mobile.– For games, they typically have a "quick game" mode

as a first option as well• So, think about more than one device, and think

about “how quick can I make my app to use?”

Page 33: How to be an Independent Mobile Dev by TJ Grant

Google

– Google does a lot with Open Source, simplicity, and usuability.

• They leverage existing technology with no cost to them. You should do that.– They were also a key innovator with "small ads"

on websites.– Guess who else does “small ads” now, only for

mobile devices?• Google, Apple, Microsoft.

Page 34: How to be an Independent Mobile Dev by TJ Grant

Apple

• Apple has a high aesthetic for their devices and high quality for their software.– High quality, nice aesthetic… you should do that.

• They also invent new ways of doing things, and this can be quite challenging for developers.– Simple sometimes isn’t always best, so “think

different” like them.

Page 35: How to be an Independent Mobile Dev by TJ Grant

Microsoft– Microsoft values the quick and simple. They see someone

else do something (like Apple), and they do something similar.• “Just do it”• They also will venture into new markets—• The xbox was the first true American Video Game

console developer since Atari.– Xbox vs Sony’s Playstation– Zune vs iPod– Windows 8 vs Apple's iOS strategy.

• Competition is exciting! You should be competitive.

Page 36: How to be an Independent Mobile Dev by TJ Grant

Open Source Software

• There’s a lot out there, from beginning projects to the complex.

• Many programmers *use* Open Source Software, but the vast majority don’t contribute.

• Yet another opportunity to build portfolio material.

• There’s opportunity everywhere!

Page 37: How to be an Independent Mobile Dev by TJ Grant

Questions?