Showing posts with label Mobile. Show all posts
Showing posts with label Mobile. Show all posts

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. 

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!

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. 

Monday, April 12, 2010

Perfect Mobile Platform

What would make up the perfect mobile platform? What characteristics should it posses? Here are some of them, in no specific order:
  • User Interface/Experience - a rich user interface that provides a great user experience. When using the phone, everything should come naturally, with ease, and should have the WOW factor that makes you never want to leave the phone out of your hands. Doing common tasks should not take more than a few clicks. 
  • Application Ecosystem - Having many applications to chose from is not as important as having quality applications, those that satisfy a particular need, like finding a place to eat, checking your email, or playing Doom. Integrating location, social networking, and sensors is a must.
  • Internet Browsing - surf the Web from anywhere, on the go. A mobile browser should be able to render pages properly and fast, navigation should be done with ease, data should be compressed as to save bandwidth, and use the latest web technologies (HTML5, CSS, JavaScript, etc).
  • Battery Life - it better not leave me hanging after a full day of use, or in the middle of a call, or while searching for a place to eat using the GPS. 
  • Development Ecosystem - provide a rich set of APIs that can access all the features of the phone, and can provide the best user experience. Provide tools that can be used to make it easier to write apps. Publishing an application should not involve much hassle. 
  • Openness - here I refer to not only an open and free platform, but to a platform that allows any mobile technology to work on it.
  • Enterprise - features such as security, integration with email/calendar/notes/contacts servers, messaging, to name just a few. 
There is no one platform that satisfies all these needs better than any other platform. What is needed is a platform that has the user experience of iPhone and Android, the application ecosystem of iPhone (and Android very soon), the internet browsing of iPhone and Android (mostly any WebKit-based browsers), the battery life of the Blackberry, the development ecosystem of Android and iPhone, the openness of Android, and the enterprise characteristics of Blackberry. 

Will we ever have such a platform? I really doubt it. 

Tuesday, December 22, 2009

Cross-Platform Mobile Development


I don't have to tell you that there are multiple mobile platforms out there, such as Symbian, Blackberry, iPhone, Android, Windows Mobile, BREW, webOS, Limo, Bada, and others. As a mobile applications developer, one should try to cover as many platforms as possible. Developing on these platforms requires knowledge of Java, C++, .NET, Objective-C, clearly too many languages. As if this would not be enough, there is the fragmentation issue within each platform. So, what can one do to alleviate these problems? Fortunately, there are some tools that mitigate this issue by allowing to design/code once, and port to different platforms afterwards. I am just going to mention some of them, leaving up to you to go and further investigate if you deem necessary. A quick note: when HTML is mentioned, JavaScript and CSS are included by default.

Airplay allows you to code in Visual C++ and build for x86 and ARM compilers, thus building your application as an "OS-agnostic binary file that contains native CPU instructions". The platforms supported are iPhone, Android, Symbian, Windows Mobile, and BREW.

Alchemo is useful if you have a Java ME application that has to be ported to other platforms such as Android, BREW, iPhone, and Windows Mobile.

PhoneGap is an open source tool for web developers that want to take advantage of features such as location, accelerometer, etc, and still write applications using HTML. The platforms supported are iPhone, Android, Blackberry, Palm, and Windows Mobile.

With Pyxis Mobile, you can take advantage of their Application Studio and configure your application to run on Blackberry, Windows Mobile, and iPhone platforms. The platform offers support for connectivity to enterprise data sources.

Rhodes is an open source framework where you can build native applications (despite the use of HTML or Ruby for development) that run on the iPhone, Windows Mobile, Blackberry, Symbian, and Android.

Smartface Designer allows you to design you application using the tool and deploy it to Blackberry, Symbian, and J2ME. You can drag-and-drop existing components when using the designer tool, thus avoiding writing code.

Sybase Unwired Platform follows the same line of designing your applications once, and deploy it on several mobile platforms such as Windows Mobile, Windows 32 (Laptops/Tablets), iPhone, and Blackberry. The platforms is geared towards enterprise, offering integration with Sybase, Oracle, IBM, and Microsoft based databases, SAP, Remedy, etc enterprise applications, and Web Services.

Titanium Mobile uses Web Technologies (such as HTML, JavaScript, etc) to build native applications for the iPhone and Android platforms.

Voyager allows you to code in your favorite development language (Java, .NET languages, C++), and deploy it on various platforms such as Android, JavaFX, Windows Mobile, Java ME, Linux, Blackberry, Symbian, BREW, iPhone, with future support for Real-Time OSs. This is the platform that covers most of the existing mobile platforms, and allows for enterprise integration.

Other platforms that may be worth looking into are Dexterra ConcertSpring Wireless, and QuickConnect.

Below is a table summarizing the info supplied above (last updated on: July 17, 2010):



Airplay
Alchemo
PhoneGap
Pyxis Mobile App Studio
Rhodes
Smartface Designer
Sybase Unwired Platform
Titanium Mobile
Voyager
Platforms Supported
Android
X
X
X

X


X
X
Java FX








X
Windows Mobile
X
X
X
X
X

X

X
Linux








X
Blackberry


X
X
X
X
X

X
Symbian
X

X

X
X


X
BREW
X
X






X
iPhone
X
X
X
X
X

X
X
X
Java ME





X


X
Development Languages
C++
X







X
Java ME

X







Java








X
.NET








X
HTML


X

X


X

Own Visual Language



X

X
X


Other Properties
Open Source


X

X




Enterprise Integration



X


X

X
Free
X (only for iPhone)

X

X (if using GPL)






There will be a book that will come out on April of 2010 August 31, 2010 entitled "Pro Smartphone Cross-Platform Development: iPhone, Blackberry, Windows Mobile and Android Development and Distribution", by Sarah Allen and Vidal Graupera, and which should offer valuable resource for anyone involved with cross-platform development.

Please drop me a message if you know of any other cross-platform tool(s) worth mentioning.

Friday, May 1, 2009

Useful links for all mobile related

mobiThinking has posted a very useful webpage of resources related to the mobile industry, covering news, blogs, guidelines, forums, and many many more valuable information resources. You can read more here.

Saturday, December 6, 2008

Mapping open source to mobile

VisionMobile published a report on the different open source technologies used in the mobile space, describing who is using open source, where they are using it, and how they are using it, a must read.