Archive for the ‘ Miscellaneous ’ Category

This Week in Mobile and Web – 04.19.11

Hello, Recursive Readers!  It’s been awhile since we last chatted.  We’ve been busy bustin’ out apps and websites.  If you haven’t seen, we’ve recently released an iPad app for the American Swedish Institute, in partnership with Adolfson & Peterson Construction.  It looks great and will educate ASI visitors about the new Nelson Cultural Center.

And here is your news…

    Development

    OS News

    The Web

    Apps, Apps, and Additional Apps

    Device Central

    Carrier News

    Friday Infographic

    (click for larger version)

    This Week in Mobile and Web – 03.04.11

    Apple had some big new this week, with the announcement of the iPad 2, iOS 4.3, and new iPad apps.  The iPad 2 is slimmer — by a third — has front and rear facing cameras, a dual core A5 processor, and 512MB of RAM.  It also has a built-in magnet system that allows for covers and cases to ‘snap on’ and take advantage of the new lock/unlock features.  The iPad 2 will be available in WiFi and 3G versions (AT&T and Verizon), starting March 11th, starting at $499.  In addition, they announced that iOS 4.3 will be launching March 11th, to coincide with the launch of the iPad 2.  This looks to be true as iOS 4.3 “Gold Master” has been made available to developers.  It will be available for the iPhone 3Gs, iPhone 4, iPod Touch 3rd/4th gen, and both iPads.  One last thing…they also announced that iMovie and Garage Band will be available in iPad flavors soon.  You can watch the full keynote here.

    Now…the rest of the news.

    Development

    OS News

    Also, this week in the OS battle….

    Nielsen released a couple of charts depicting smartphone market share per OS, per manufacturer.  The first chart shows that there is still a three-way battle between Android, iOS, and RIM (Blackberry), with Android leading, by a slight margin.  The second show OS adoption by age.  Android appears to be more popular with younger folks.  This might have something to do with the fact that there are more devices to choose from, at lower price-points.

    The Web

    Apps, Apps, and Additional Apps

    Device Central

    Carrier News

    Friday Video

    Cult of Jobs v. Google Droid Army: The Google-Apple Wars

    Expanded Mobile March Event Set for March 19, 2011

    Minneapolis, MN – Organizers of Mobile March today announced the agenda for it’s second annual mobile event will be held on March 19, 2011 at the Best Buy Corporate Campus. The name Mobile March denotes not only the month in which it takes place, but also emphasizes the ongoing advancement and growth of mobile technology and the related lifestyle. Its dual track format includes more sessions than last year and will continue to offer education and information in both the Mobile Development and Mobile Business areas. In addition attendee registration includes access to Mobile March’s Mobile 3D: Demos, Dinner and Drinks featuring locally developed mobile technology the preceding night, March 18th, at CoCo in downtown St. Paul.

    According to Mobile March’s Justin Grammens, “Mobile continues to grow rapidly and offers so much opportunity for developers and business. We feel we’ve expanded and increased the value of Mobile March significantly.” According to Mobile March’s Phil Wilson, “From President Obama down, with all of the talk about innovation, we believe mobile represents a clear example of that innovation and that the Twin Cities is home to leaders in both mobile development and use.”

    The agenda, available online at mobilemarchtc.com, includes Mobile Development sessions addressing the development of applications for the new Windows 7 Phone with Microsoft’s Jeff Brand, HTML 5 and the Mobile Web with Mark Nutter from Area Studios, 4G, as well as an iPhone – Android Showdown with Recursive Awesome’s own Phil Olson and Rory Lonergan.

    The non-technical Mobile Business track includes Cracking the Code: QR Codes and Coupons with MixMobi’s Lisa Foote and guests, Location Based Services: Mayors to Marketing with Christopher Lower of Sterling Cross Communications, and Grill Yourself, a session about what you need to know when developing a mobile app for business. The track also includes Tablet’s Mean Business with Pioneer Press Tech Writer and author Julio Ojeda-Zapata and to end off the day, an excellent session entitled On the Campaign Trail With Mobile Technology by Mark Jenkins Marquis Mobile Solutions.

    The Landscape of Mobile Discussion with Pearson VUE’s Peter Pascale and a Keynote to be announced soon will target both Development and Business attendees.

    Registration is now open for Mobile March!

    Register for Mobile March via the website at www.mobilemarchtc.com or directly through http://mobilemarchtc.eventbrite.com

    Event sponsors include: Recursive Awesome, RemainComm, Focus Business Development, Best Buy, Verizon Wireless, Fusion Room and Microsoft.

    2011 Consumer Electronics Show Review

    Just about a week ago, I hopped on a plane to Vegas to attend the Consumer Electronics Show; More colloquially known as CES.  As the name may imply, CES is all about the gadgets that we use on a daily basis.  Whether that’s your TV or stereo, or more recently your laptop, smartphone or tablet.  In this post, I’m going to briefly cover some of the things that I saw, while walking the show floor.  I’ll also be posting a few articles to cover some of the topics in more detail.

    Let’s get started…

    Tablets Galore

    Last year, at CES 2010, the big talk was “tablets”.  With this new-fangled, open, operating system — Android — there is finally an OS that can easily be ported to the tablet form factor.  Unfortunately, that’s all it was…just talk.  Apple beat everyone to the punch by releasing the iPad in April.  Several months later, Samsung released the first real Android player; the Galaxy Tab.

    CES 2011 started off the same way as 2010; Talk, talk, talk.  Only this time, mobile and PC manufacturers, in conjunction with the carriers, have delivered.  Motorola, Samsung, ASUS, Vizio, RIM (BlackBerry) and many others have all thrown their hats into the ring. (more on this in another post)

    The Next Generation of Smartphones

    Many handset manufacturers took the opportunity to show off their latest wares.  Screens are getting bigger and brighter, more and more devices are coming with front-facing cameras, and most are packed with some sort of 4G technology.  The common thread with all of these devices…drumroll please…Android.  Verizon alone announced four LTE 4G devices.  All with 4.3″ screen, LTE 4G and front-facing cameras.  Only one of these Verizon phones stands above the rest;  The Motorola DROID Bionic.  What makes the DROID Bionic better than the rest?  Two words; Dual-Core.  THIS is the future of smartphones.  The DROID Bionic wasn’t the only dual-core device. There are more on the horizon. (more on this in another post)

    TVs, TVs, and additional Televisions

    TVs are getting thinner and thinner, but somehow manufacturers have managed to pack more and more features into the case.  Luckily bits and bytes don’t take up much physical space and most of these new features are software related.  Connected TVs are all the rage these days.  Apps, streaming video, video calling, it’s all there.  3D was also pretty popular at CES.  Still, nothing is quite as good as watching a 3D movie in the theater.  It’ll get there eventually.  I didn’t spend much time looking at TVs, as I was focusing my efforts on mobile.

    All in all, there was plenty to see at CES 2011.  Mobile and Tablets were everywhere.  I’d be willing to bet that they will eventually take over the entire South hall or push car audio out of the North hall.  Perhaps there’s a need for “Mobile CES” or “MES”.

    Keep an eye on the blog, as I dive deeper into some of the topics above.

    5 Reasons Why the iPhone on Verizon is a Big Meh

    iphone verizon meh

    Well, it finally happened.. Today is the day that many an iPhone fan has been waiting for. The iPhone is now available on the Verizon network! It has been hailed for years as the day that Apple would have access to the 93 million subscribers in the US and annihilate any other smartphone on the market ( or that is what Apple would like to have you believe ).

    After hearing this news today though, I paused and thought about exactly what this might mean to other mobile OS platforms on the market and in particular, Android. In short, I believe it really does little to harm the adoption of Android.

    Here’s why:

    1. Android Has Gained Adoptance : Android has been steadily cementing itself as a true contender to the iPhone throughout 2010. Last quarter it outsold the iPhone in number of units sold both in the US and worldwide. Here in the US it’s a little closer, but worldwide Android is being purchased well more than iPhone and is closing in on Symbian.

    Why does this matter? The iPhone on Verizon will use CDMA technology. The possible number of carriers and subscribers able to use CDMA is much smaller than what is currently used with a competing technology called GSM. GSM is more portable ( pop your sim card out and move to another phone ), is used by vastly more carrier worldwide and more importantly GSM allows for simultaneous data AND voice to occur at the same time. Remember those iPhone commercials where people are able to call someone AND surf the web at the same time? You won’t be able to do this on the iPhone with Verizon.

    2. IPhone not a 4G Device : Not only will the iPhone on Verizon be a CDMA device, it won’t be running on the new LTE (4G) network that the Android smartphone coming out around the same time will be on. What does this mean? If users are looking for fast download speeds ( 12 – 25 Mb/s ), they should skip the iPhone and purchase one of the many Android devices with LTE on the market.

    3. Users Are Stubborn : It’s hard for users to change devices. So many of Verizon’s users have bought Android phones. In fact, many phones were probably just bought this past holiday season. Sorry Apple, but these users are now Android users. If the iPhone would have been on Verizon BEFORE, say Thanksgiving or even earlier in the year, it would have carried more weight. But the millions of Android devices ( recall that 300,000 A DAY were being activated at one point ) this past holiday season are now Android users and as we all know, it’s very hard to get a user to convert from one platform to another.

    4. Competition is good : The assumption has been all along that when the iPhone came to Verizon, the other platforms would not be able to step up and compete. If there is one thing that I have seen in the past year is that competition in the smartphone market forces companies to innovate and create new products, new ways of solving problems and new technology. Look at Windows Phone 7 for example. Microsoft has put out a very solid device in the face of strict competition. It’s still a first stab ( arguable a much better first stab than Google’s own G1 in 2008 ) and Microsoft is innovating by trying a different design approach and user experience than both Apple and Google. Likewise with Palm WebOS V2. It’s a risk, but something that companies need to do to compete. With the iPhone coming to Verizon, it just means that Google MUST continue to improve Android. It’s a win for Android users!

    5. Need Other Carriers Besides Verizon : There is still T-Mobile, Sprint and many other networks around the world that after today still DON’T have the iPhone! Even though we will see many hundreds of millions of user’s having access to the iPhone while staying on a network running CDMA technology, there’s still many, many hundreds of millions more potential user’s that this announcement doesn’t affect. If the iPhone were suddenly announced on all of the carriers in the US and worldwide that Android devices were, this would be much more of a threat.

    Some people might read this as a negative article, but in reality I welcome the iPhone to Verizon! The more devices that are accessible to user, regardless of the network are better for consumers. This whole idea of “exclusive” devices per carrier is quite maddening. Owning and using both an Android device and an iPhone, I enjoy each for its own merits. At the end of the day, people will buy what devices they enjoy using and won’t have to deal with carriers exclusive terms. I dream of a day when all phones are available on any network and the consumer has true choice. Until that day though, we’ll have to wait years for an announcement like we heard today and realize that things that maybe seemed so ground breaking in a carrier controlled world, actually aren’t all that special. If things were just more open from the beginning ( imagine the market share Apple would have today if the iPhone was available on all networks back in January of 2007! ), we would have increased competition, advancement in the technology and announcements like we heard today won’t be such a… hmm, what’s the word? meh.

    This Week in Mobile and Web – 12.30.10

    Another short week, but still a lot of news.  CES rumors and news are still flowing like mad.  Keep your peeps on our blog and twitter account for all of the news and reviews!

    Development

    OS News

    Web

    Apps

    Carrier News

    Devices

    Friday Humor/Infographic

    xkcd

    This Week in Mobile and Web – 12.03.10

    We’re starting a new feature for the Recursive Awesome Blog.  It’s called This Week in Mobile and Web (a.k.a. TWIMAW).  We’ll be bringing you the hottest, newest, dopest, and freshest news, device info, carrier news, mobile apps, web apps, and development trends.  Stay tuned every Friday for This Week in Mobile and Web.

    Carrier News

    Verizon Wireless to launch their LTE 4G service December 5th (and all I got was this USB modem)
    I was fortunate to have the opportunity to sit in on the Verizon Wireless conference call where they announced the launch of their 4G service.  The initial roll-out will be 38 cities (and 60 airports).  The only devices available will be two USB modems (booo!).  Each will cost $99.99 (with new 2-year contract, $249.99 without a contract).  Plans start at $50 for 5GB or $80 for 10GB.  Overages will be billed at $10 per GB.  I’m currently reviewing the LG USB modem.  Keep an eye out on DroidDog for that review.
    Source: Me via DroidDog

    The OS Battle

    Devices

    Apps

    The Web

    Development

    Friday Humor

    Java vs. Ruby

    Source: Flickr

    iPhone Unit Testing – Part 1 : Writing the first test

    I was recently given some direction by an iPhone developer on an existing application:

    You need to have unit tests. I know there aren’t any unit tests in the code now, but you need to have them. When the original code was written, it was done over weekends and I didn’t have time to write tests.

    Not having time is certainly understandable (but aren’t unit tests supposed to *save* time?) – but in reality there are many reasons why a lot of  iPhone applications you see won’t have solid unit test coverage:

    1. The iPhone IDE (yes, you Xcode!) does not encourage TDD.
    2. Apple provides very little guidance around unit testing iPhone applications. And the guidance they provide can be confusing to folks coming from other platforms.
    3. Setting up the environment can be tricky!
    4. There are multiple competing iPhone unit testing frameworks that improve upon the stock OCUnit (SenTestingKit) framework that comes with the iPhone SDK. So it seems that multiple people must have thought OCUnit could be improved upon!

    This post will get you started with the “default” unit test framework, OCUnit (a.k.a. SenTestingKit), provided by Apple. Our goal is to understand what is available out of the box with the iPhone SDK and get our first test to execute!

    Let’s get started!

    Setting up our project.

    By far the most confusing part in setting up tests for the iPhone is configuring the project and the build environment to execute tests. Once the project structure has been laid out correctly and we get the first test executing, there is no more infrastructure to prevent us from writing hundreds and hundreds of tests.

    Unfortunately when compared to frameworks like ruby on rails – which rightly puts an emphasis on TDD – the iPhone SDK and Xcode look rather silly. In rails, tests are highly encouraged. Not so in Xcode. There is a little setup required outside of the default template. It’s not difficult, but it’s not out of the box either.

    Step 1 : Add a new target

    I’ve created a project called UnitTestingExample. Add a new Unit Test Bundle target to the project. This target will execute all of our unit tests, so we’ll name it something related to that. I’ve called this target LogicTests.

    Adding A New Target

    Making a Unit Test Bundle Target

    Multiple Targets

    Notice in the last screenshot we have two targets – our main application (UnitTestingExample) and our unit test bundle (LogicTests). Behind the scenes, Xcode has configured our target to find OCUnit, which quite confusingly is called SenTestingKit – based on the name of the open source project in which the code was written.

    Step 2 : Create Test Cases

    Now that we have a target for our tests, let’s create a new class that will contain our tests. Create a class (deriving from NSObject in Xcode). I created one called LogicTests.m. Be sure to add it to the LogicTests target only.

    Adding a file for unit testing.

    Open LogicTests.h and make a few changes. First, we need to import SenTestingKit. SenTestingKit is the unit testing framework which is also referred to as OCUnit (rather obviously short for “objective-c unit” – to keep in line with the xUnit pattern). We also derive our class from SenTestCase. At this point, the header is done. It’s time to write our tests.

    LogicTests.h

    In LogicTests.m – create (void) functions with no parameters that start with test. SenTestingKit will automatically execute all functions that have this signature. In the following case, we will let the test fail to understand how SenTestingKit will report errors.

    LogicTests.m

    Step 3 : Build The Test Target

    Now let’s run the tests. Ensure the LogicTests target is setup to run under the Simulator. The tests will not be executed using Device. This is quite unfortunate – the Device build actually succeeds without running any tests! We’ll keep this little fact in mind when we look at other unit testing frameworks.

    Run The LogicTests Target

    Unlike most all other unit testing frameworks, the tests are run *after* the project has successfully built. Not so with SenTestingKit. The tests are actually ran as part of the build process. The build will fail if any tests fail, which is good. However it is not typical workflow in how unit test frameworks tend to work.  Typically tests run *after* the build step! (Really these are running after the application is built, but the workflow is a bit different than the workflow in other platforms). Looking at the build output we will see where the failures occurred. Xcode does a rather nice job of pointing you at the errors.

    Build Errors

    Congratulations! If you have made is this far you have unit tests up and running! At this point we can create more tests and more test classes. In the following example, we test a Calculator class and a simple test using NSURLConnection to illustrate that we can test against the Foundation library.

    Passing Unit Tests

    Limitations

    Let’s step back a second. There are a few limitations that are going on here that we need to call out:

    1. We can’t debug tests. Because these tests run during build time (in a shell script build step), we can’t set breakpoints. This will be a deal breaker as the number and complexity of our tests increase.
    2. The tests are executed in what Apple refers to as a “clean room”. i.e., not the real world. We need to be aware that we do not have access to a UIApplication object or the rest of the iPhone application environment. Apple refers to these type of tests as “Logic Tests” (which is why I named my test class LogicTests.m). Logic Tests test your lower level code that is independent of the iPhone application context (run loop, touch events, etc..)
    3. Controlling execution / output. Getting build errors in Xcode helps us solve the problems and fix the tests. That does the job – but it barely scrapes the surface on features when compared to other platforms. We are sorely lacking other helpful features that most all other environments have. How about a GUI runner where we can see log output per test? How about the ability to run one test or a group of tests? A few more simple features would certainly be nice to have.

    Next steps

    This has been a good first step. We have unit tests running – which puts us ahead of many iPhone applications currently on iTunes! We’ve learned how to create a target specifically for testing, add files to our project that will only be contained in one target, and create tests.

    With these fundamentals out of the way, it’s time to get out of our “clean room” and start cranking out tests that actually stress our application – tests that hit UIApplication, our view controllers, and our UI code. We also need to tackle the other limitations – like better debugging and better control over our test execution! We also need to go behind the scenes and see how SenTestingKit really works and how our bundle is created. We didn’t add a reference to SenTestingKit in our application – but hey, we have tests!

    In the next post we will address testing UI functionality and getting tests running on a device. Once we have this, we will be able to test cover our entire iPhone application. We’ll then move on to more advanced features that 3rd party toolsets provide – like being able to selectively run tests and control test execution a bit better.

    Minnesota Developers Conference

    This week ILM, a local Minneapolis Microsoft consulting company, hosted it’s 5th annual Microsoft Developers Conference (MDC). Justin Grammens from Recursive helped ILM setup the mobile track and even though it was mostly a Microsoft-focused event, we brought our Macs, iPhones, and Droids and talked mobile.

    There were three mobile presentations that served as an overview to their respective platforms. Adam Grocholski from RBA consulting presented Windows Phone 7, Donn Felker presented Android, and I presented iOS. During the last breakout session Justin Grammens moderated a tablet discussion with the three of us as panelists.

    I have to admit, presenting an Introduction to iOS talk isn’t as easy as it sounds. For the majority of .NET developers, everything about iOS is new. The Macintosh OS, Xcode, Interface Builder, Objective-C, UNIX, and so on. My challenge was trying to cover the landscape, but yet still develop a simple iOS app to show some of the details involved in the development process (i.e., IBOutlet, File Owner, etc..)

    To focus just on iOS, I purposely avoided using the F word (“Flash”, of course), politics involved around app store approval, provisioning, and ad-hoc distribution. I gave a quick overview of the tools and library stack (from core os to UIKit) and started a sample app.

    The sample app was a simple UITabViewController with 4 tabs that showed simple views. The views were a UITableView, UIWebView, MKMapView, and a UIButton that played a movie. I wanted to introduce a table because it’s so common and allowed me to touch on delegates. Web view allowed me to preach on mobile web goodness. Map Kit is a cool native control with high presentation value (i.e., no code to type!) and the movie was to show how easy it is to integrate multimedia on iOS.

    I would estimate we had 120 people in the audience and I enjoyed giving the talk. My slides and sample code is attached.

    If you were at the presentation, I certainly hope you enjoyed it! Any and all feedback would be greatly appreciated!

    Introduction to iOS Development – Slides

    Introduction to iOS Development – Sample Code

    PS. The tablet talk was Awesome. We talked development, fragmentation, mobile web, carriers, manufacturers, the whole shebang related to tablets. That deserves a post of it’s own…

    Best Buy “Mobile Codes” video features Recursive Awesome apps

    Best Buy started rolling out their Mobile Code program, last week.  ”Mobile Code” is a sexy way of saying QR Code or 2D Barcode.  These codes will start appearing on product signs, in the weekly ad, and on other signage throughout the store.  When scanned, some codes will direct you to product info.  While others may provide access to content, like promotions, offers, or videos.

    They’ve put together a short video, showing off the new Mobile Code scanning capability, within the iPhone and Android apps.

    Whether it was coding or testing, iPhone or Android, backend or frontend, Recursive Awesome had their hands in almost every aspect of the mobile app development, to bring this awesome app to completion.

    BONUS:  Last week, we also received a shout out on the Best Buy Apps blog.  Check it out here!

    EDIT: It looks like Best Buy pulled the video.  I did find another video featuring Mobile Codes.  Enjoy!

    (I’m going to leave this video embedded, in case the make the video public again)

    Best Buy for Android

    Best Buy for iPhone