Top Banner
Jonnie Hallman destroytoday.com ONE MAN DEV TEAM adobe / destroytoday
85

One Man Dev Team - FATC 2011

Aug 15, 2015

Download

Self Improvement

destroytoday
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: One Man Dev Team - FATC 2011

Jonnie Hallman destroytoday.comONE MAN DEV TEAM

adobe / destroytoday

Page 2: One Man Dev Team - FATC 2011

HOW I STARTED

WHAT I MADE

WHAT I LEARNED

Page 3: One Man Dev Team - FATC 2011

we got our first computer in 93, a mac performa 476, 25mhz, 4mb ram

Page 4: One Man Dev Team - FATC 2011

Jane Blob

i got really good at clarisworks.jane blob story, couldn’t change license name.i didn’t know much about how digital stuff worked (apps, games, etc)...

Page 5: One Man Dev Team - FATC 2011

I was really into video games and made websites for video game cheats/moves using geocities & angelfire, but they always had banners....

Page 6: One Man Dev Team - FATC 2011
Page 7: One Man Dev Team - FATC 2011

JONHALLMAN.COM

dad noticed my interest, bought me jonhallman.com and hosting for christmas

Page 8: One Man Dev Team - FATC 2011

$300 for lifetime of hosting - he still sends me the $0 invoices

Page 9: One Man Dev Team - FATC 2011

tried really hard to ‘brand’ myself, but was never happy with the result, so the website remained a ‘coming soon’ page for months

Page 10: One Man Dev Team - FATC 2011

it was around this time that i learned about flashi was the tech person for the middle school morning announcements

Page 11: One Man Dev Team - FATC 2011

we needed an intro and i made an animation using shape tweens.

Page 12: One Man Dev Team - FATC 2011

macromedia had a free 30 day trial for their apps, so instead of buying them...

Page 13: One Man Dev Team - FATC 2011

i would reinstall OS 9 every 30 daysdidn’t take too long for a 5 gig harddrive

Page 14: One Man Dev Team - FATC 2011

how i got started

i was inspired by flash gods like joshua davis...

Page 15: One Man Dev Team - FATC 2011

...and robert hodgin, so i made experimentsthey had such cool names, so i thought i needed one myself

Page 16: One Man Dev Team - FATC 2011

FIRST-IN-LINE.NET

jonhallman.com wasn’t cool, so i also got first-in-line.net, possibly the worst domain name to remember

Page 17: One Man Dev Team - FATC 2011

inspired heavily by praystationi’m the kind of person who feels empty when i’m not producingalways had a stack of loose papers with sketches on themcoded the ideas when i got home from school each daysuper lame, had multiple email addresses for no reason

Page 18: One Man Dev Team - FATC 2011

around flash mx 2004, i had enough and gave up on it...I got deep into PHP and made dynamic web apps, like jpixel

Page 19: One Man Dev Team - FATC 2011

it takes a 100x100 image and blows it up 10x, using dot patterns to represent each pixel

Page 20: One Man Dev Team - FATC 2011

i got into graphic design during pre-college at risd and mica and turned my digital work into printI tiled outputted JPixel images, making huge 12x10 ft prints

Page 21: One Man Dev Team - FATC 2011

SHAW JELVEH DESIGN

started working for a small studio called shaw jelveh designfirst thing they asked is whether i can make flash websites

Page 22: One Man Dev Team - FATC 2011

they had me design and develop 3 sites in my first 2 monthswith tight deadlines, i learned how to code fast, esp since i worked 10 hours a weeki also learned to keep things simple

Page 23: One Man Dev Team - FATC 2011

produced a dozen websites in less than a yearsome of them, i only had a week or 2 before they were due

Page 24: One Man Dev Team - FATC 2011

on my friend’s birthday, I was at his house and I challenged myself by coding luke’s site in the duration of high fidelity

Page 25: One Man Dev Team - FATC 2011

as well as learning how to code fast, i also learned how to learn fastgreenbuild, conference for sustainability

Page 26: One Man Dev Team - FATC 2011

in my junior year, I heard about AIR and fell in love with the idea of apps rather than websitesI replaced most of my gd classes w/ independent studies

Page 27: One Man Dev Team - FATC 2011

USERS VS CLIENTS

TOOL VS PRESENTATION

INCREMENTAL VS ONCE AND DONE

I liked app development because of thisyou have to please clients. try to make users happy, but don’t have please them all.

Page 28: One Man Dev Team - FATC 2011

NO RESTRICTIONSANY LANGUAGE

ANY PLATFORM

ANY IDEA

apps became very personal

Page 29: One Man Dev Team - FATC 2011

DESIGNER

DEVELOPER

PROJECT MANAGER

CUSTOMER SUPPORT

YOU

requires many rolesI was ready because of shaw jelveh

Page 30: One Man Dev Team - FATC 2011

1 HOUR

1 HOUR

1 HOUR

1 HOUR

4 HOURS

what takes 1 hour for each person will take you 4 hours

Page 31: One Man Dev Team - FATC 2011

DESTROYFLICKR

i took a photo imaging class.

Page 32: One Man Dev Team - FATC 2011

we used flickr for critiquingi hated the site - white background, static pages, very slow to navigate

Page 33: One Man Dev Team - FATC 2011

i thought of taking this opportunity to make my own app using flickr’s apii started sketching and brainstorming

Page 34: One Man Dev Team - FATC 2011

since i was new to UI design and had such a heavy background in web design, the app looked just like a website, but on the desktop.

Page 35: One Man Dev Team - FATC 2011

(sorry, Ryan)

and i wasn’t an icon designer by any means, so i took inspiration from CS3, since most of my dock was adobe apps.i later met the icon designer during my adobe interview.

Page 36: One Man Dev Team - FATC 2011

(movie of DestroyFlickr too large for download)

the end result was an app that had a better environment for photos (dark background)it was very fast because it only needed to load the imagesyou could page through hundreds of photos in seconds with animated transitions

Page 37: One Man Dev Team - FATC 2011

i tried to make features that were unique and that I would get a lot of use from, like drag and drop downloading.you could drag a handful of thumbnails and it would download the hi-res versions.

Page 38: One Man Dev Team - FATC 2011

I took it a step further and made it so you could drag and drop a contact to download their entire photo library

Page 39: One Man Dev Team - FATC 2011

i released it for free and shared it with friends and famthe install count went from 30 to 3000i started getting tons of emails. some reported bugs, others requested features, and some just said thanks.I tried to respond to every single one.many didn’t realize I was one guy.someone even gave me a ps3

Page 40: One Man Dev Team - FATC 2011

flickr caps the api at 1 query per second, once destroyflickr reached that, instead of throttling DF...

Page 41: One Man Dev Team - FATC 2011

they interviewed me

Page 42: One Man Dev Team - FATC 2011

on top of that, i won an adobe design achievement awardi knew now that maybe app dev was a good direction

Page 43: One Man Dev Team - FATC 2011

enhance!

Page 44: One Man Dev Team - FATC 2011

enhance!

Page 45: One Man Dev Team - FATC 2011

WHAT DID I LEARN?

Page 46: One Man Dev Team - FATC 2011

THE WORD “DESTROY”SCARES PEOPLE

many didn’t use it because they thought it would delete their account.at the same time, many used it because of the name.

Page 47: One Man Dev Team - FATC 2011

DON’T DEVELOP ANAPP YOU WON’T USE

you’ll miss essential features and ux will sucki didn’t use flickr much, so i missed essential features like sets/groups

Page 48: One Man Dev Team - FATC 2011

NO APP SHOULD REQUIREA GIG OF MEMORY

memory - not a concern for web, but definitely for appskeep track of everything you allocate memory for

Page 49: One Man Dev Team - FATC 2011

a feature like this shows complete disregard for memory

Page 50: One Man Dev Team - FATC 2011

MOST GOOD FONTS DON’TSUPPORT A WIDE

RANGE OF CHARACTERS

selecting all the glyphs you want to embed doesn’t mean the font has those glyphsarial ms unicode is the only font with (almost) every glyph

Page 51: One Man Dev Team - FATC 2011

i thought all i needed to do was check these boxes

Page 52: One Man Dev Team - FATC 2011

USE PROVEN METHODSAND CONVENTIONS

i didn’t go to school for programming, so i didn’t know any design patterns or any of the terminologyuse an architecture framework (mvcs, robotlegs)follow a common coding styleotherwise you’ll spend more time refactoring when you discover your way doesn’t work well.

Page 53: One Man Dev Team - FATC 2011

since I only ever dev’d by myself, I didn’t really know what good code looked like.the style I used was based on what I found useful and it was soooo bad

Page 54: One Man Dev Team - FATC 2011

KEEP APPS UP TO DATEWITH DEPENDENCIES

if you want to continue developing an app, keep it current with your librariesI was able to develop DF fast because I had a lib for common classes, like images, text, etc.i forgot to update DF with my libs, and it was too late

Page 55: One Man Dev Team - FATC 2011

TALK ABOUT TWITTER!

Page 56: One Man Dev Team - FATC 2011

To me, Twitter is a background service, like IM. It’s not fulltime, like Photoshop or Flash Builder. When I want to tweet, I’ll open it, tweet, then hide it.All the current apps were bloated and cumbersome, so I made DT super light and super intuitive. Hotkeys galore.

Page 57: One Man Dev Team - FATC 2011

DESTROYTWITTER

spent a day researching others, jotting down pros/consthen coded v1 in 10 days over christmas break

Page 58: One Man Dev Team - FATC 2011

MOST USERS KNEW“DESTROY”

(old people don’t use Twitter)

so it didn’t scare people as much

Page 59: One Man Dev Team - FATC 2011

PERFECT APP FORCOLLECTING FEEDBACK

also made it easier to respond to users, instead of emails bottling up

Page 60: One Man Dev Team - FATC 2011

Ii knew to use a proven framework, like Robotlegs

Page 61: One Man Dev Team - FATC 2011

It was my first persistent app—open for long periods of time. Because of this, I paid extra attention to memory and CPU usage.

Page 62: One Man Dev Team - FATC 2011

And once I got the basic Twitter functionality down (tweeting, streams, etc), I started adding special features I wanted.Because of unfollow drama and events, I added filters. DMs and unfollow notifiers make things awkward, and i’ve been confronted

Page 63: One Man Dev Team - FATC 2011

Since Twitter is reading-intensive, people want it to be easy for them to read. For some, that means black text on white, for others it’s white text on black, so I made themes. Now no one complains.

Page 64: One Man Dev Team - FATC 2011

With so many users, you have thousands of opinions. Everyone wants the app to work different, so I added preferences when anyone wanted something a specific way. It quickly overflowed the preference pane.

Page 65: One Man Dev Team - FATC 2011

Place a file called ‘debug’ here to receive RTEs with full stack traces.I set up a script to email users’ stacktraces to me.

Page 66: One Man Dev Team - FATC 2011

300,000+ INSTALLS

1 MILLION+ TWEETS/MONTH

Page 67: One Man Dev Team - FATC 2011

WHAT DID I LEARN?

Page 68: One Man Dev Team - FATC 2011

A RESIZABLE WINDOWIS A REQUIREMENT

NOT A FEATURE

support a resizable window

Page 69: One Man Dev Team - FATC 2011

DO NOT PUSH AN UPDATEBEFORE YOU GO TO BED

a bug will always existhttp://http:// story

Page 70: One Man Dev Team - FATC 2011

USE A PROPER VERSION CONTROL SYSTEM

...

Page 71: One Man Dev Team - FATC 2011

I kid you not, this is what my version control system was.I didn’t know version control existed, so I’d zip the folder.

Page 72: One Man Dev Team - FATC 2011

NOT EVERY UPDATEIS FROM 1.0 TO 1.1

backwards compatibility

Page 73: One Man Dev Team - FATC 2011

PEOPLE LOVE ANYTHINGPRIVATE & BETA

(especially teen ‘professionals’)

free quality engineers

Page 74: One Man Dev Team - FATC 2011

PUT FRESH EYESON YOUR CODE

working alone on something for too long makes you too familiar and you miss things.go open source or set up code reviews. everyone learns.

Page 75: One Man Dev Team - FATC 2011

we use code collaborator at adobe

Page 76: One Man Dev Team - FATC 2011

AUTOMATE AS MUCHAS YOU CAN

since you’re just one man, the more you set up to run automatically, the more time you have to be productiveuse build scripts, unit testing, continuous integration, make a common lib

Page 77: One Man Dev Team - FATC 2011

use jenkins

Page 78: One Man Dev Team - FATC 2011

FINAL THOUGHTS

Page 79: One Man Dev Team - FATC 2011

MAINTAINING ANAPP IS A HUGECOMMITMENT

(especially alone)

think years and make sure you’re ready to invest your time and energy

Page 80: One Man Dev Team - FATC 2011

MOTIVATE YOURSELFWITH VARIETY

if you code all day for work, the last thing you’ll want to do is code all night.your work will use up all of your creative juices and you won’t have much left for your apps.

Page 81: One Man Dev Team - FATC 2011

HAVE FUN

Enjoy what you’re working on.

Page 82: One Man Dev Team - FATC 2011

THANK YOU

Page 83: One Man Dev Team - FATC 2011

ONE MORE THING...

Page 84: One Man Dev Team - FATC 2011

I AM OPEN SOURCINGDESTROYTWITTER

Page 85: One Man Dev Team - FATC 2011

website destroytoday.comemail [email protected] @destroytoday