Author Archive

0

Enabling rotation has been a pain, and I’m not sure it is really all that necessary for my app, but it has certainly forced me to clean up my code. It seems like every single thing I had done “wrong” in the code broke when I turned on rotation. It has forced me to really clean up my view controllers and memory management. In the end, I might even turn off rotation. But enabling it will have been good for the app in the long run.

Today’s tip: Enable rotation in your app! It’s the good kind of pain!

0

And today’s learning is regarding Objective-C and accessors, from Scott Stevenson at theocacao.com:

When using properties with the dot syntax, prefix the name with self to use the accessor:

// direct access
value = studio;
studio = value;

// uses accessor methods, sends KVO notifications
self.studio = value;
value = self.studio



Even if you have garbage collection enabled, you should still use the accessor methods in most cases because Key-Value Observing, and Cocoa Bindings depend on these methods being called to synchronize changes across objects.

A subtle point, but an important one. Especially when dealing with pesky object retention problems!

0

9:30 - I know that everyone is waiting with baited breath! Well, I have to say, “not yet”. I was all ready to enable rotation (2nd try), when I realized I needed to do my scroll view memory usage optimization first. Unfortunately, that exposed some previously hidden memory management issues, which forced me to learn some new tools and finally figure out Objective-C memory management. Now I seem to have that solved, so I can check it in and get on to rotation. Except, wait, I did get the app to crash last night, so better look at that first…

10:00 - Ah, the debugger’s nightmare. Console log was gone, crash log no help, and can’t reproduce it. Oh, well, sure I’ll see it again later. Time to check-in!

10:10 - Are the “blog” gods as powerful as the “demo” gods? Just as soon as I wrote the last paragraph, I crashed the app! Let’s see why I won’t be able to debug this one… ;-)

10:30 - Again, no console log, crash log no help. Gotta see if I can reproduce it while plugged in… YES!

12:44 - Got a bunch of stuff fixed. I want to write it is ready for check-in, but I know now that I wrote that, something will crash…

14:09 - Cleaned up and ready to check-in!

0

Mobile Portland is a group that meets every 4th Monday to discuss mobile development. This week’s topic: A Standards-Based Approach to Mobile Web Development.

Introductions - always impressed with how many mobile developers in the area

Upcoming Activities

WebVisions

  • Android Meetup
    • 2nd Monday
    • Lucky Lab
  • iPhone Meetup
    • 2nd Tuesday
    • Green Dragon
  • Innotech
    • innotechconference.com/pdx
    • April 22-23
    • ~$65
  • Bar Camp
    • barcamp.org/BarCampPortland
    • May 1-2
  • WebVisions
    • May 20-22
    • $195

Presentation

Introduction

  • Gail Rahn Frederick (gail.frederick@gmail.com)
  • Mobile Designer
Why study mobile web development
  • The Mobile Web is Totally New
  • The Mobile User is Totally New
  • The Mobile Browser is Totally New
Mobile Web is Totally New
  • New Markup and Scripting Languages
  • Partil implemenations of standards is OK
  • Optimize for Network Bandwidth
  • The Mobile Web is the Wild, Wild West
    • Transcoding proxies reformat your markup
    • Can totally mess up your markup
    • Defensive programming is essential
Mobile User is Totally New
  • 3 groups
    • Repetitve Now (same data over and over)
    • Bored Now (have time on their hands - casual)
    • Urgent Now (Business locations, directions to airport, etc. - location based)
Mobile Browser is Totally New
  • Must be tested on phone
Mobile Web Usage
  • Mobile Phones have been adopted faster than any other electronic device (and are in broader use)
  • Average session length is 3 minutes (vs. 10-15 minutes on the desktop)
  • 12+ browser mfrs (vs. 2-4 on the desktop)
  • Browser bugs are frequent and permanent
  • Huge variety in screen resolution
Design
  • Prioritize and organize features
  • Promote “snackability”
  • Be consistent with desktop version of web
  • Use device database to adapt to device (serve best markup)
    • WURFL, Device Atlas
  • iPhone-only sites reach only 10%-15% of mobile market
Gail’s Classes at PCC
  • Mobile Web Development
  • Advanced Mobile Web Development (for smart devices)
0

Just about to Alpha with my first app.  One bug and one enhancement to go…

0

Today is Apple’s iPhone OS 3.0 announcement. I’ll capture my thoughts here.

The iPhone OS 3.0 Announcement Scorecard is pretty good. Hopefully we’ll see more than a few of these!

Here we go:

Overview:

  • 13.7 Million iPhones shipped
  • 800,000 downloads of the SDK
  • 50,000 iphone developers
  • Gameloft has had 2 million downloads
  • 25K apps in the app store
  • 96% of submissions are approved
  • 800 million app downloads (and the rate seems to be stable, perhaps even accelerating)

SDK 3.0 preview:

  • Major update to the OS
  • 1,000 new APIs (is that a good thing?)
  • New App store models (”In-App Purchase”)
    • Buy new game levels
    • eBooks
    • Subscriptions
    • Still uses iTunes store (sweet!)
    • 70% still goes to developer
    • Paid apps only
  • Peer-to-peer connectivity
    • IP over Bluetooth
    • Standard system panel to find other local iPhones running same app
    • Uses Bonjour
  • Accessories
    • Apps will be able to talk directly to them
    • Examples
      • Speaker
      • FM Tuner
      • Blood pressure monitor
    • Over cable or Bluetooth
    • Standard and/or custom protocols
  • Maps
    • Now can be embedded in your application
    • Can do turn by turn directions!
    • The catch - can’t use built in maps for turn-by-turn
  • Push Notification
    • Delayed due to developer requests for new usage models (hmmm)
    • Still don’t like background processes (kill battery life)
    • Seems like previously announced architecture
  • Video & Audio
    • New streaming API for video and audio
    • New API for in-game voice
  • Other things on the SDK slide
    • In app email
    • Data Detectors
    • Shake API
    • iPod Library Access
    • Proximity sensor
    • Open URL
    • Battery API
    • GPS Lingo
  • “2-week” examples
    • What can someone do in 2-weeks with the new SDK?
    • Meebo (IM)
      • Showed chat and push notification
    • EA (games)
      • 10 iPhone games so far
      • “The Sims”
        • In-game purchases
    • Oracle
      • iSnooze ;-)
    • ESPN
      • Alerts
      • Streaming video (auto adjusts to available bandwidth)
    • LifeScan (Johnson & Johnson)
      • Diabetes testing
      • Diet calculations
    • ngmoco (games)
      • TouchPets
        • In-game purchases
      • LiveFire (Multiplayer First Person Shooter)
        • In-game chat
    • Smule (Ocarina)
      • Leaf Trombone (multiplayer music app)

New user features

  • Cut, Copy & Paste!
    • Double tap to select
    • Slide to grab more text
    • Pop up has “Cut|Copy|Paste”
    • Shake to undo (at least in Safari)
    • Send multiple pictures and paste into e-mail
  • Landscape in Mail, Notes, SMS
  • SMS
    • Forward & Delete Multiple Messages
    • MMS (3G only)
    • Can add contacts, photos, audio you receive
  • Voice memos
  • 2 new Calendar types (CalDAV, ?)
  • Stocks
    • News stories & details
    • Landscape view
  • Search
    • Mail!
    • Calendar!
    • iPod Library!
    • Search everything from Spotlight app - nice!
    • Flick past leftmost homescreen to get to spotlight
    • Can run apps from spotlight (yea! no more “lost” apps!)
  • Other new features (from Apple slide)
    • Notes Sync
    • Auto-fill
    • Parental controls
    • Shake to Shufle
    • WiFi auto login
    • Stereo Bluetooth (YYYYYEEEEEESSSSSS!) (3G only)
    • Anti-phising
    • YouTube accounts
    • VPN on demand
    • Call log
    • Live streaming
    • Create meeting invitations
    • Audio/Video Tags
  • “Missing” features
    • Background apps
    • Video recording
    • Flash
    • Bluetooth sync
    • Tethering

Developer beta available today!

Available to end users in June

  • Free for iPhone
  • $9.95 for iPod touch

App Store

  • 15 new countries
  • 77 total countries

Q&A

  • Why no flash?
    • Can’t tell us
  • Will peer to peer work with other devices?
    • It’s limited to Bonjour (so, Macs, I guess?)
    • No file or music sharing
  • Tethering?
    • Apple is building support in.  
    • Sounds like carriers make the decision
  • Push notification uptime guarantees?
    • No
  • Addressing current OS “lagginess” problems?
    • Definitely
  • Could you serve audio files over bluetooth, could you move them?
    • Very unsure “probably not”
  • Approval process
    • There have been issues, e.g. content available to children.
    • Working with developers to improve it.

Thanks to engadget.com and cnet.com for their live blogs!