Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Chromatic

 Chromatic

A Cocoaheads presentation about the trials and tribulations of my first paid-for app

Ray Yamamoto Hilton

February 09, 2012
Tweet

More Decks by Ray Yamamoto Hilton

Other Decks in Technology

Transcript

  1. Motivation • 2yo daughter - There are lots of crap

    kid’s painting apps • Simplest possible UI - Ads, buttons, and dialogs distract • Play with OpenGL on iOS • Try and remember high-school vector maths • Experience the paid-app process 2 Friday, 14 December 12
  2. Could I do better? • Put my money where my

    mouth is • Define the MVP • Short turnaround (1.5 months part time, ~80hours) • Use daughter as a tester • Shoot first, ask questions later 8 Friday, 14 December 12
  3. Promotion • Not indicative of suggested strategy, just my whimsical

    attempt • It’s been two months • $20 on Facebook Ads • $122 on Google Adwords • Twitter & Facebook posts 10 Friday, 14 December 12
  4. OpenGL • I’m using OpenGL ES 1.0 • Previously used

    OpenGL in digital agency projects • Looked through many NeHe and Apple tutorials • Complex, procedural but very powerful • New terminology (Textures, Vertices, Fragments, etc) 14 Friday, 14 December 12
  5. Metaballs! • Each particle has an intensity • Each particle’s

    intensity falloff is inversely proportional to r2 • At each pixel, add the intensities from each particle • ~4000 particles 15 Friday, 14 December 12
  6. Cheat • Create radial falloff gradient in photoshop • Use

    glEnable(GL_POINT_SPRITE_OES); • Use glBlendFunc(GL_ONE, GL_ONE); • Constrain to ~1000 particle 17 Friday, 14 December 12
  7. Performance • Use C-style structs, arrays, etc • Reuse allocated

    memory • Avoid doubles when floats will do • Use glVertexPointer(), et al • Use CADisplayLink 21 Friday, 14 December 12
  8. Next • Try charging more/less • More creative promotion strategy

    • More interactions & effects • Look at using 3D metaballs for crazier effects • Ideally, use GLSL... 22 Friday, 14 December 12
  9. GL Shader Language • OpenGL ES 2.0 has a programmable

    pipeline • C-style language that is executed on the GPU • Write vertex & fragment “shaders” • Reduces sync between the GPU and CPU 23 Friday, 14 December 12