Categories
Uncategorized

Mobile Developer News Roundup: iOS Simulator Tips and Tricks, iOS SDK for Web Designers and Who Uses Mobile Devices and QR Codes

iOS Simulator Tips and Tricks

If you build iOS apps, you spend a fair bit of time in the simulator. Here’s a set of tips to get the most out of it:

  1. Use custom coordinates to simulate being in a specific location or in a moving vehicle.
  2. Slow down animations so that you can polish them.
  3. Apply colours to views to it’s easier to check your layouts.
  4. Simulate hardware and software events, including simulating a hardware keyboard and the “TV Out” option.
  5. Add photos to the simulator.

A Guide to the iOS SDK for Web Designers

If you’re a designer and not a developer, building iOS UIs with Xcode can seem pretty daunting. The Smashing Magazine article, A Guide to the iOS SDK for Web Designers, is a designer-focused overview of Xcode, covering the preparation of graphics for Xcode, importing them into Xcode, building user interfaces and evening doing a little coding.

The Pew Research Center’s Survey of Smartphone and Tablet Users

A Pew Research Center survey of about 10,000 adults conducted online from June to August 2012, reports that:

  • 22% of U.S. adults own a tablet, double that from the previous year
  • 44% of U.S. adults have smartphones, up from 35% in May 2011
  • 52% of tablet owners said they own an iPad, down from 81% a year ago
  • 48% of tablet owners said they own an Android device; half of them were Kindle Fires

Pictures of People Scanning QR Codes

And finally, an amusing little Tumblr showing how people use them (at least in North America, anyway): Pictures of People Scanning QR Codes.

Categories
Uncategorized

How Times Have Changed: Jason Kottke on Apple and Microsoft, Back in 2000

What will the 2019 picture look like?

Dare “Carnage4Life” Obasanjo pointed to some food for thought from an old entry in Jason Kottke’s blog, dated February 27, 2000 — which was after the iMac and iBook, but before the really big hits:

  • a year before OS X (March 2001),
  • a year and a half before the iPod (October 2001),
  • 7 years before the iPhone (June 2007), and
  • a full ten years before the iPad (April 2010)

Here’s the key excerpt:

And that brings us to Microsoft and Apple. Microsoft is perhaps the largest target of this sort of “boycott”, organized or otherwise. People hate Microsoft. Companies hate Microsoft. It’s the company you love to hate. Apple, on the other hand, is one of the most beloved companies in the world. People love Apple.

But what if Apple were Microsoft? What if Apple had won the battle of the PC and was the largest company in the world? People would hate them. Why? Because they would be using the same tactics as Microsoft to stay ahead and keep every bit of that advantage in anyway that they could. Apple is the way it is because they are the underdog.

I’ll even argue that life would be worse under Apple’s rein. Apple controls the OS *and* the hardware: if we were under Apple’s boot instead of Microsoft’s, we’d be paying too much for hardware as well as the software.

It’s been over a dozen years since Kottke wrote that article, and his “What if?” has effectively come true. Apple is “the largest company in the world” if you go by its market cap — according to Forbes, it’s now “The Most Valuable Company in History”. Android may have the larger market share, but when it comes to the platform that people line up for, makes the news, is considered to be the reference platform, has the developer love and makes them the most money, it’s iOS.

Here’s the question, which I’ll leave up to you to answer: now that we’re “under Apple’s rein”, is life worse, as Kottke speculated it would be? 

Categories
Uncategorized

The “iPhone 5 Super-Glued to the Sidewalk” Trick

I’ve seen the old trick where you super-glue a loonie (that’s a Canadian one-dollar coin) to the sidewalk and watch people try to pick it up. This takes it to a whole new level.

This article also appears in The Adventures of Accordion Guy in the 21st Century.

Categories
Uncategorized

Mobile Developer News Roundup, Android Edition: Get “50 Android Hacks” Cheap, Accesibility, Consume Azure Mobile Services from Android

50 Android Hacks

Today’s “Deal of the Day” — a regular offering from Manning Publications where they make one of their books available for far less that it would normally go for — is for 50 Android Hacks. Here’s the publisher’s description:

“In this compact and infinitely useful book, Android expert Carlos Sessa delivers 50 little gems like you’d learn from the old guy in the next cube or the geniuses on StackOverflow.”

50 Android Hacks is an “early access” book, which means that it’s still a work in progress. Buying it now means that you can download the current version and all updates including the final book.

The ebook normally sells for US$27.99, but with the access code dotd1005cc, you can get it for US$15.00 today only.

As an added bonus, you can use the same dotd1005cc code to get  Android in Practice and Android in Action, Third Edition at 46% off.

Links

Android Apps Accessibility

Here’s the video of the Google I/O 2012 presentation Making Android Apps Accessible, which covers the platform accessibility APIs introduced in Android 4.0 (a.k.a. Ice Cream Sandwich) and features such as “touch exploration, speech synthesis, multiplatform support through use of a DPAD, magnification for low vision, braille, and more.”

There’s also a recent Grokking Android article, Take These Steps to Make Your Android App Accessible, which is also worth reading.

Links

Consuming Azure Mobile Services from Android

In yesterday’s Mobile Developer News Roundup, I linked to a series of MSDN articles on using Azure as a back end for your iOS apps. There’s a similar series for Android titled Consuming Azure Mobile Services from Android.

Links

Categories
Uncategorized

Mobile Developer News Roundup: The Horror of Mobile Web Development, Consuming Azure Mobile Services from iOS, and Windows 8 / Windows Phone 8 Events Later This Month

Throne of JS Presentation – “Mobile Webdev: The Horror”

Throne of JS was a conference on JavaScript and JavaScript frameworks put together by Toronto-based development shop Unspace, the instigators behind the renowned RubyFringe and FutureRuby conferences. The organizers brought together some of the bright minds behind a number of JavaScript frameworks and tools, including Nick Small and Harry Brundage of Shopify (who were there to talk about Batman.js) and Adobe’s John Bender, who works full-time on jQuery Mobile.

InfoQ were at Throne of JS and captured John’s presentation, Mobile Webdev: The Horror, in which he talks about some of the difficulties that you’ll encounter when building web-based apps for mobile devices. Whether you’re a web developer who’s starting to build apps for mobile devices or one who’s been at it for years, you’ll find it a useful and entertaining overview of the current mobile landscape.

Links

Consuming Azure Mobile Services from iOS

MS can produce some pretty interesting tech,
but wow, do they also produce some really butt-ugly diagrams.

If you’re thinking about using Microsoft’s Azure cloud system as the back end for your iOS app, you’ll want to check out this five-part article series.

Links

Windows 8 / Windows Phone 8 Events Later This Month

This is the month that Microsoft unleashes their new, unified-look operating systems!

On Thursday, October 25th, they will hold a launch event for Windows 8, starting with a Surface launch at midnight, followed by a daytime event from 10 a.m. to 3:00 p.m.. There’s still no word on how much Surface tablets will cost — these are the ARM-based Windows RT ones; the Intel based Surface Pros come out in 2013 — nor has anyone had a chance to review them, but they’re expect to retail somewhere in the $300 to $800 range. I suppose we’ll find out in a few weeks!

On the following Monday, October 29th, they’ll hold a launch event for Windows Phone 8, the mobile OS so secret that even developers had to partake in a lottery to get their hands on the SDK and sign an NDA if they won. As with Windows 8, we’ll finally see what Microsoft have been keeping under wraps all this time.

Links

Categories
Uncategorized

Hi-Call’s Bluetooth Glove Lets You Make and Take Calls Using the “Call Me” Hand Gesture

You probably recognize this as the gesture, which pantomimes speaking on a old phone handset, as the symbol for “call me”:

The Hi-Call Bluetooth glove handset now lets you use that same gesture to make a call:

With a speaker in the thumb, a microphone in the pinkie finger and Bluetooth components and indicators near the wrist, the Hi-Call glove lets you make and take calls using the well-known hand gesture. It’ll be good for a laugh when you demonstrate it in front of friends, and strangers watching you use the glove from a distance will think you’re one of those crazy people who talk to themselves (although Bluetooth earpieces have had the same effect for years).

Here’s Engadget’s video, where they give the Hi-Call glove a try:

The Hi-Call should be available later this month for about $70. That’s a bit steep for something that has some joke value but that I probably wouldn’t use normally; if it were priced somewhere closer to the Moshi Moshi Retro Handset, I’d consider it as a joke gift for officemates.

This article also appears in The Adventures of Accordion Guy in the 21st Century.

Categories
Uncategorized

A Step Forward (or: Objective-C Doesn’t Need Forward Declarations Anymore)

The Old Way: Forward Declarations

The Commodore 64 is from about the same era as Objective-C. The 64 hit the market in 1982; Objective-C (and C++ as well) first appeared in 1983.

Older languages like C (and recently, Objective-C), won’t just let you call a function or method whose definition is later on in the same file. Consider these two C functions, which appear in my Inpulse Magic 8-Ball tutorial:

void set_time_mode()
{
    start_timer(TIME_UPDATE_INTERVAL_LENGTH_MS,
                &update_time_display);
}

void update_time_display()
{
    pulse_blank_canvas();
    pulse_get_time_date(&current_time);
    printf("The time is\n%d:%0.2d:%0.2d\n", 
           current_time.tm_hour,
           current_time.tm_min,
           current_time.tm_sec);
    set_time_mode();
}

The function set_time_mode refers to update_time_display, whose definition comes after set_time_mode‘s. As far as the C compiler is concered, set_time_mode doesn’t exist yet, and it will refuse to compile, giving you an error message that looks something like this:

src/pulse_app.c: In function ‘set_time_mode’:
src/pulse_app.c:76: error: ‘update_time_display’ undeclared (first use in this function)
src/pulse_app.c:76: error: (Each undeclared identifier is reported only once
src/pulse_app.c:76: error: for each function it appears in.)

You can’t simply switch the order of the two functions since update_time_display also calls set_time_mode.

Forward declarations solve this problem. By including the signature for update_time_display before the definition of set_time_mode, we give the compiler enough information so that it knows what to do with update_time_display when it’s compiling set_time_mode:

void update_time_display();

void set_time_mode()
{
    start_timer(TIME_UPDATE_INTERVAL_LENGTH_MS,
                &update_time_display);
}

void update_time_display()
{
    pulse_blank_canvas();
    pulse_get_time_date(&current_time);
    printf("The time is\n%d:%0.2d:%0.2d\n", 
           current_time.tm_hour,
           current_time.tm_min,
           current_time.tm_sec);
    set_time_mode();
}

The code above compiles.

The New Way: No Forward Declarations

Newer languages like Python and Ruby don’t need forward declarations. You can have a method refer to another method that appears later in the file in Python:

# A quick and dirty example in Python

def first_method():
  # second_method appears later in this module
  second_method("Hello there")

def second_method(statement):
  print statement

first_method()

And here’s the Ruby equivalent:

# A quick and dirty example in Ruby

def first_method
  # second_method appears later in this module
  second_method "Hello there"
end

def second_method(statement)
  puts statement
end

first_method

Objective-C joins the club in Xcode 4.3 and later (as of this writing, the current version of Xcode is 4.5); you no longer need to make forward declarations. The compiler will “look ahead” if the function or method it’s compiling makes calls to functions or methods that appear later on in the file.

This means that the following code compiles in Xcode (at least in Objective-C):

void set_time_mode()
{
    start_timer(TIME_UPDATE_INTERVAL_LENGTH_MS,
                &update_time_display);
}

void update_time_display()
{
    pulse_blank_canvas();
    pulse_get_time_date(&current_time);
    printf("The time is\n%d:%0.2d:%0.2d\n", 
           current_time.tm_hour,
           current_time.tm_min,
           current_time.tm_sec);
    set_time_mode();
}