Saturday, September 28, 2013

It's all about iOS 7

It is all about iOS 7. SO here is a list of resources you will surely enjoy:
  • Apple Design Goes Flat with iOS 7 - the title of the blog post is a little misleading as the author gives an overview on the deference, clarity, and depth themes of iOS 7. 
  • iOS 7 by Tutorials - book with a lot of tutorials on iOS 7 APIs (UIKit Dynamics, Motion Effects, Text Kit, Unite testing / CI in Xcode 5, and many more). The list of authors is impressive as well (Ray Wenderlich, Jeremy Olson, and many more). Haven't yet ordered the book, but it is on the top of my list.  
  • The Essential iOS 7 Developer's Guide - similar to the above resource, it provides 11 guides to iOS 7. Each tutorial is small and to the point, easy to read and go through, while also providing a little bit of code as well.
  • iOS 7 review - great, comprehensive, and more importantly a balanced review of iOS 7 written by Rene Ritchie of iMore. 

Saturday, August 31, 2013

TDD Resources for iOS

Below are a couple of resources I've found useful when doing TDD in iOS. 

Books:
  • Test-Driven iOS Development -  the only TDD book specific to iOS. It goes over implementing a fully functional iOS app using TDD, from the data layer all the way to the UI.
  • Working Effectively with Legacy Code - although not specifically geared towards iOS, this book is the authority on how to work with untested code (legacy code), how to safely make changes to it, all by applying TDD. 
Frameworks/Tools:
  • OCUnit (SenTestingKit) / XCTest - testing unit frameworks built directly into Xcode. 
  • OCMock - objective-c implementation of mock objects. Provides features such as class mocks, stubs, protocol mocks, expect/verify, and many more. 
  • OCHamcrest, OCMockito, Kiwi, GHUnit, Cedar - other unit testing tools that you might find useful.  
  • CoverStory / lcov - code coverage of your unit tests. 
Articles/Tutorials:
Other Resources:

Sunday, August 18, 2013

A couple of short link - August 18, 2013


  1. 75 Essential Tools for iOS Developers - the list is categorized based on Inspiration, Design, Source Control, Dissecting Apps, Editors, Documentation, Dependency Management, Diagnostics & Debugging, Images, Core Data, Back-end Services, Analytics, Deployment, Testing, Demos / Marketing, App Sales Reporting. 
  2. Apple allowing up to 200 test devices per iOS Developer account - keep in mind that some developers have not yet seen this change on their accounts (myself included).
  3. The idea behind Uber (which connects drivers with riders) has spread to other services such as
    • laundry (through Prim), 
    • to-dos such as grocery shopping, furniture assembly, etc (through TaskRabbit),
    • house cleaning (through Exec), 
    • dog walking (through Swifto),
    • flower delivery (through Bloom That).
  4. Google's "20% time" is rumored to be dead - this is a shame really, as having one day a week to spend on something that is outside of your job description can bring a lot of satisfaction and value.
  5. Objective-C Coding Style by NYTimes - an extensive guide that outlines the coding conventions adopted by the Developers at NYTimes. There are a few of other coding conventions that they link to at the end of the page.   

Saturday, July 27, 2013

Short list of iOS 7 resources I've found useful

Few iOS 7 resources I've stumbled upon, mostly through Twitter. I will not include the obvious Apple ones, as you should have already read all of them by now, twice!

  • ios7.io - A selection of iOS7 specific links covering icons, designs, apps, and much more. 
  • iMore.com - A collections of iOS 7 news from no other than Rene Ritchie. 
  • iOS 7 Apps Redesign - Various redesign of apps to match iOS 7 guidelines, with a screenshot of a before and after. 

Saturday, July 13, 2013

iOS technical newsletters that everyone should use


  1. objc.io - once a month in-depth technical topics related to Objective-C, by Chris Eidhof, Daniel Eggert, and Florian Kugler. A must read for everyone that is interested in best practices and advanced techniques. 
  2. NSHipster - another high quality resource on topics for Objective-C, by Mattt Thompson. 
  3. NSScreencast - weekly screencast on iOS development, by Ben Scheirman. This is a paid subscription-based service. 
  4. iosdevweekly - weekly emails of iOS development links, by Dave Verwer. 
  5. Ray's Monthly Newsletter - monthly tutorials for iOS developers and gamers, by Ray Wenderlich. 
  6. Evolution or Extinction - weekly newsletter on iOS and other technology topics, by my good friend and co-worker Justin Kent. 
Subscribe, read/watch, and enjoy!

Sunday, July 7, 2013

A couple of short links - July 7, 2013


  1. Stroke of insight: Jill Bolte Taylor - fascinating TED talk about a neuroanatomist that one morning had a stroke, during which she analyzed and remembered every single moment. 
  2. 13 Things You Must Know When Starting Out In iOS/Mac Development - advices from well known people that are involved with iOS. 
  3. Clear - a list-keeping app that is fully focused on content and uses gestures instead of buttons. Inovation at its best!
  4. Dribbble - have a design you would like to get feedback on? Look no further. 
  5. TSA API - you can find out wait times for TSA security checkpoints. 


Saturday, March 26, 2011

Application Ecosystem for the BlackBerry PlayBook

According to their press release, RIM has officially announced the ecosystem for applications that will run on the PlayBook tablet. Below is a quote from the release:
  • BlackBerry PlayBook to support BlackBerry Java and Android apps
  • Native C/C++ development support added, in addition to HTML5, Flash and AIR support
  • Support from leading game engines: Ideaworks Labs (AirPlay) and Unity Technologies (Unity 3)
  • BlackBerry PlayBook becomes a new market opportunity for all the developers who have already created over 25,000 BlackBerry Java apps and more than 200,000 Android apps 
The most important part for me, and something that I've been hoping for a long time, is the added support for Android. What RIM was lacking was an application ecosystem. This will not be the case anymore. And it is not only about Android in the end. Moving away from Java ME is the first step (still need it for existing applications). When you can write applications using HTML, Flash, C/C++, Java ME, and Android, you can't go wrong. There is no other ecosystem out there that provides such a diversity. 

Thursday, November 18, 2010

Basic vs Applied Research - Linear vs Nonlinear Models

I was reading a review in IEEE Spectrum of Henry Petroski's "The Essential Engineer: Why Science Alone Will Not Solve Our Global Problems", and found several references to the linear model of how research is being conducted in the U.S.:

"Part of the problem, he [Henry Petroski] says, is the linear model of technological progress: Basic research spawns applied research, which in turn fuels technological development. This model is wrong historically, and it undervalues the creative juices of good engineering ... This linear model became ascendant in U.S. science policy after 1945 when Vannevar Bush submitted his famous report, “Science—the Endless Frontier”, which enhanced the prestige (and funding) of basic research at the expense of applied work."

I wrote in one of my previous posts about linearity and nonlinearity in biology, engineering, and financial systems, and how linear models (such as blood vessels in biology, waterfall model in engineering) have a negative impact on the systems where they are applied. The review of the book has the same underlying message, namely how moving away from the linear model of basic research towards the more practical approach of applied research (or development projects) has a greater outcome in terms of engineering advances. 

Wednesday, November 17, 2010

Android Ginerbread adds NFC support

Listening to the conversation with Eric Schmidt at the Web 2.0 Summit 2010, I was pleasantly surprised that the new Android 2.3 (called "Gingerbread"), will add support for NFC, or Near Field Communication (I heard rumors about this in the past). There are many use cases that I can think of, the major one being using your phone for making payments. I said it in the past that the main reason I think NFC has not been adopted is because there was no major company/platform using it. Now there is.

Tuesday, October 26, 2010

2010 Gadget Census

Retrevo's 2010 Gadget Census revealed what gadgets people were using in each state, with the summary of it captured in the image below:

Tuesday, September 21, 2010

Articulated Naturality Web

Articulated Naturality Web, or ANW, is what comes after augmented reality, the next level, the next phase if you will. There's a short video posted on engadget (and at the end of this blog post) that shows some of the features of ANW. For me, it's amazing because it fuses sensors, location, internet, image processing, and much more into one technology that gives meaning to the surroundings by means of your smartphone. Imagine sitting outside of an hotel, and looking at the available rooms, how they look inside, prices, and booking information. Blows my mind what we can achieve today with the amount of information and the technology available to us.

Thursday, August 26, 2010

Installing iPhone/iPad application ad-hoc

At my current job, I had to remotely install some beta versions of the iPad app for some clients, before the app was actually released on iTunes. There are several steps that one has to take in order to achieve that (assuming you have followed some of them that describe creating Certificates, App IDs, etc):
  1. In your iPhone Developer account, go to the iPhone Provisioning Portal, the to Devices, and add the iPad device to the Current Registered Devices section. You have to know the Device UDID (40 characters that can be copied form iTunes when you have the iPad plugged into your computer).
  2. Add the newly created device to the Distribution Provisioning Profile. 
  3. On you station, drag-and-drop the distributed provisioning profile into XCode. 
  4. Under XCode, change both your app's and your target's build properties to use the new distribution provisioning profile. 
  5. Delete the old Entitlements.plist file and create a new one.
  6. Change your settings so that XCode uses Device as the Active SDK, and Distribution as the Active Configuration. 
  7. Build your app, then zip the executable. 
  8. Export your private key and the developer identity certificate and import them into your client's Keychain (you might also need to export-import the AppleWWDRCA.cer file to your client). Finally, add the iPhone distribution certificate to the Keychain. 
  9. Download the new distributed provisioning profile and drag-and-drop it into your customer's iTunes app (either drop it on the iTunes icon, or in the App section). 
  10. Un-zip your application and drag-and-drop it into the app section of your customer iTunes (if the Apps section is not visible, go into iTunes -> Preferences and click on the checkbox marked as Apps). 
  11. Synchronize iTunes with the iPad to transfer the app from iTunes to your client's iPad. 
Hope it's going to help some of you. Enjoy!

Sunday, July 4, 2010

Saturday, May 29, 2010

Robots: they re-arrange themselves and officiate a marriage ceremony

Yukiko Sawada and Takashi Tsubouchi at the University of Tsukuba, Japan, have built a self-configuring conference room, where the tables are robots that re-arrange themselves based on an initial configuration inputed through a User Interface:



And, if we are on the subject of robots, also in Japan, a robot named i-Fairy officiated a marriage ceremony:

Tuesday, May 4, 2010

Mobile Monday Miami - May 2010

Yesterday evening I attended my first Mobile Monday Miami meeting. It was a breath of fresh air to meet and connect with people that share the same interest as I do, and are enthusiastic about anything and everything mobile. The topic was "Will The Mobile Web Kill Off The App Store?" The overall conclusion was that whether you develop your app on the mobile browser or natively, it really depends on the uses case you have at hand. Let's look at some pros and cons of both approaches:
  • Mobile Web
    • PROS: One app for all platforms (almost). With the adoption of WebKit (iPhone, Android, WebOS, Nokia, and soon RIM) and HTML 5, this could become the cross-platform solution that everyone is searching for.
    • CONS: Getting access to some low level functionality of the phone is very difficult. Could you query the phone's proximity sensor for example? Not really. 
  • Native
    • PROS: Full access to the phone's APIs that provide you a way to query its hardware.
    • CONS: Having to develop one app for each platform. There are cross-platform tools that try to mitigate this issue. I haven't used any of those tools, although I wrote about them, but the comment made by Steve Jobs that the platforms will support the lowest common denominator in terms of features. However, I imagine that you could tweak the tools to take advantage of the features provided by every platform that you target.
Another view of the topic discussed Monday was the benefit of having an App Store in terms of discoverability and distribution, a one stop place. This can never be achieved with a web version.

Overall, fantastic discussions, great turnout, I'll definitely become a regular. 

Friday, April 30, 2010

BlackBerry in Top 5 of Worldwide Mobile Phone Bestsellers

As per wired.com, RIM has replaced Motorola in the top five mobile phone companies worldwide based on Q1 2010 sales, and it's tied with Sony Ericsson for the number 4 spot:


This is not unexpected since when it comes to enterprise and messaging, there is nothing like the BlackBerry. On a side note, Motorola has actually had profit for the first quarter of 2010, earning $69 millions. Go Moto!

Sunday, April 25, 2010

Ten Best Chapters of Software Development Books

I have file on my laptop that contains a huge list of books (mostly software related) that I just don't have the time to read completely, or to read at all (but I do have time to write this blog :)). Beside the list of books, the file has links to other lists of books of the type "every programmer should read", "must read", you got the idea. Dustin Marx came up with his own list, but what is different is that it gives you a list of best chapters of software development books, chapters that he "found to be most influential or most impressive" in his career as a software developer. If you're just like me, you will appreciate the list.

Saturday, April 24, 2010

The Marshmallow Challenge

Tom Wujec conducted a team building experiment called the marshmallow challenge with people ranging from kindergartners to CEOs, with results that were surprising. His presentation is below: