Monday, September 17, 2012
I'm reading: iOS integration with MS BI Solution ArchitectureTweet this !
In my career experience, reporting has been the biggest piece of any solution. Mobile applications owns a large stake these days as an end-client application. Web is thought to be the ultimate platform for exposing your applications, but native applications that sits on mobile computing platforms like Android and iOS are huge stakeholders in the reporting consumers ecosystem. Benefits of web applications versus mobile platform native applications is a huge topic in itself, and demands a dedicated post.
As an architect, recently I have been given the helm of delivering an MS BI solution. The application has to be delivered as an iOS / OS X native application and the end clients have iPad and this application should be available as a native application on the same. Generally professionals with an architect cap, try to escape from the intrinsics of technology but in most of the cases I have seen that such professionals are not the dark horses of this game. If you give an attitude that I am an Architect (thou not an enterprise architect but just architect of your 2-3 applications) so I don't know anything about technology stack and nor can I analyze the skeleton of different technologies, then any business would want such professionals only on contract for the shortest time possible.
If you understand the entire different kinds of technology stack skeleton, you would be able to integrate your solution with joints of steel, and that is your job as an architect. Quick points that an architect would be interested in knowing about iOS world are listed below, which would help any architect to get a quick launchpad about iOS world of native applications.
1) If you have made up mind to develop web applications that can target a variety of mobile devices, you can use native wrapper classes using frameworks like Adobe PhoneGap.
2) App Store and iTunes are great examples of native applications displaying web content inside it.
3) XCode is the SDK from Apple used to develop applications for iOS platform.
4) Most of the iOS applications are implemented using MVC design pattern.
5) Objective-C is the programming language used to develop applications, and its quite similar to C# too.
6) Interface Builder is the IDE that is used to develop application user interface and associate code with the UI. A simulator designer is provided inside this IDE.
7) Automatic Reference Counting (ARC) is the garbage collection mechanism of the iOS platform.
8) TableViews can be thought of synonymous to .NET configurable data grids.
9) Depending upon the complexity of the screen there are different kind of projects template available in XCode. For single screen apps one can use project types like "Utility Application" and for more complex apps that require different screens can use "Tabbed Application".
10) Different applications are targeted for different devices like iPhone and iPad. "Master-Detail Application" is a project type that would work seamlessly on iPhone as well as iPad.
11) Its possible to embed web content inside the application. UIWebView class would be a quick starting point to begin your base technical framework.
12) View Controllers can be considered synonymous to specialized controls that are aimed at specific tasks.
13) API to make calls to webservices synchronously and asynchronously is available in XCode SDK.
15) SQLite is the database management library and also supported by iOS SDK to store data on the device. Apple Mail itself uses the same.
16) iPad screen have 1024 * 768 pixel resolution at 132 pixels per inch, which is a good screen resolution to develop interactive applications.
17) iOS apps can use iCloud to enable different instances of their application to interchange data. Entire user data that sits in the "Documents" directory of the device, is backed up on iCloud daily.
18) iCloud has two types of storage: key-value storage for small amounts of data and document storage for larger volumes of data.
19) iOS applications are packaged as iOS App Store Package (.ipa) file. For internal beta distribution, applications can be distributed via ad-hoc method or ad-hoc (OTA) over-the-air method. Others third-party methods like TestFlight and BetaBuilder for iOS can also be used. Generally enterprises develop internal Enterprise Application Catalog (EAC) for mobile application distributions for company provided devices to download and install these applications. So this is also a good medium to publish your mobile applications.
20) Finally you have to submit your application to App Store team, if you intend to publish your application for iOS devices globally. It goes through a review and approval process from the same team, and they have their own set of standards for approving the application.
21) Important Apple Websites: