Archive for the ‘apple’ Category

Continuous Integration for Android and iPad

Monday, August 16th, 2010

We already have a post on how Continuous Integration allows developers to work as a team effectively.  Now let’s get into the finer details of implementing CI for Android applications and iPad applications.

Our Android/iPad/iPhone CI team recently came across an application ‘Hudson’ which made life a lot easier for them. Hudson manages the CI process by integrating changes to the project thereby providing the development team with a fresh build every time. The developer can configure Hudson to receive regular emails that capture the output on each build, alerting when something goes wrong.

Installing Hudson is easy enough; just execute hudson.war file or deploy it in a servlet container. Since the output is sent through email to the concerned accounts, it does not require a database. Accessing Hudson is as easy as accessing a website. Just type in http://localhost:8080/ (on local machine) or http://domain:portnumber/ (on remote machine), in a web browser and the user will be presented with the web GUI for Hudson. The GUI is simple and offers all the configuration details required for Hudson. Hence, the user is not exposed to intricate coding details.

To configure a new job for Hudson, a user has to authenticate himself to create a job, execute it etc. Select “New Job”, type in a unique Job Name and select "Build a free_style software project". On clicking on OK you will be moved to a page where you can specifically configure Hudson for a new job. One can also get to the configuration page by clicking on the job names listed in Hudson and by selecting Configure.

In the project configuration page, the following steps need to be followed,

1. Enter the Project name.

2. Source Code Management: Select radio button Subversion

          2.1 Select the path to Repository URL for SCM

                     Eg: https://xxx.xxx.xxx.xxx/svn/platform/FolderName

          2.2 Select check-box "Use update".

                    If checked, Hudson will use 'svn update' whenever possible, making the build faster. But this causes the artifacts from  the previous build to remain when a new build starts.

3. Build Triggers:   Select check box Poll SCM

          3.1 Set schedule 0, 10, 20, 30, 40, 50… This sets HUDSON to poll SCM every 0th, 10th    20th, 30th …50th minute

4. Build :  Select drop-down "Add build step"

  • select "Execute shell"
  • fill "Command" section

          For the techie reader, check out the build configuration command examples,

          For iPhone,

                rm -rf $WORKSPACE/hudsonbld/*rmdir $WORKSPACE/hudsonbldmkdir $WORKSPACE/hudsonbldcd $WORKSPACE/Job Name/checker-240/scan-build -v -o $WORKSPACE/ScanBldOutput xcodebuild -project AppName.xcodeproj -target TargetAppName -configuration Debug -sdk iphonesimulator 3.1.3 TARGET_BUILD_DIR=$WORKSPACE/hudsonbld

          For Android,

                 cd $WORKSPACE/trunk  ant debug

5. Post-build Actions

  • Select checkBox “E-mail Notification”. Fill in the recipients email addresses separated by comma.
  • Select check-box "Send e-mail for every unstable build" which mails a report on every unstable build to the specified recipients.
  • Select check-box "Send separate e-mails to individuals who broke the build"

6. Click Save and you are good to go.

Hudson can be used in any development platform, by changing the build configuration command accordingly. Investing in the CI infrastructure has turned out to be a good call for us, by allowing our development teams’ incremental code integration and well-timed code checks which makes the final integration manageable and also provides a robust copy of software at each stage of the development process.

To know more about Hudson,

    GPS, GIS, iPads and Android tablets

    Monday, July 19th, 2010

    GIS using Android and iPad tablet devices

    We all know that GIS is the merging of cartography and database technology whereas GPS is a space-based global navigation satellite system that provides reliable location and time information in all weather.

    Using a combination of GIS and GPS, it is possible to create innovative applications for industry verticals. Assume yours is a multi location service operation or a retail store chain located at the suburbs of a metropolitan like New York or London. Field staff or people on the move have requirements to access enterprise data, and often in map formats (GIS). It could be about instant availability of a product or a service across these locations or tracking of an asset within a building using custom google maps. Large retail formats can have bespoke maps to enable customers trace products on the rack using locator services.

    GIS based android applications or iPhone applications can simplify your search.needs.  Senior sales staff working on field would be able to connect with existing CRM solutions to access information on outlets, customers, suppliers or warehouses. The possibilities are endless and using a combination of GPS services and middle tier tools, it is now possible to integrate these tablet devices with enterprise data, enhanced by the power of GIS.

    The one touch feature of tablet applications scores over cumbersome web applications that would require a log-on authentication, download of web page etc. One could define custom map points as the network expands.

    We build and integrate custom map solutions with GPS integration for production, warehousing and consumer retail stores for asset tracking and enabling production data using a mix of ready to use frameworks for iPhone and google Android tablet devices.

      iPhone, Android and Webview

      Thursday, July 15th, 2010

      iPhone explains UIWebwiew as  "You use the UIWebview class to embed web content in your application.   …..".        

      Android explains it as "A View that displays web pages. This class is the basis upon which you can roll your own web browser or simply display some online content within your Activity.…..". 

      Well is it limited to displaying web pages ? 

      Developing network based applications has always been challenging for developers. Well what makes it so challenging? For a desktop application we can assume that the resources will be available on demand. But when dealing with a network based application there is no guarantee as to whether we will receive the requested resource or even if it exists. Therefore the application must capable of recovering from such exceptions.

      The two key factors affecting performance are latency and bandwidth. In desktop applications it doesn't matter much if you are accessing resources serially, but when it comes to network based applications, things change. Latency is more or less the same for every request. If you are accessing multiple resources serially, latency adds up and the delay increases. So as developers it is our job to reduce the effect of latency, which points us to parallel access of resources.

      For this we could modify the system such that, the downloading of data is performed in the background, hidden from the end user. In such a situation, the user interactions are still possible, thereby masking the actual delay.

      There are different ways of implementing this. But we need to adopt the method which presents us with less inconsistency, less code and less worry.

      Consider a system, which requires loading images in sets of ten at a time. Here, the view will be filled with hundred or more images arranged in a grid, more like Mozilla’s Add On ‘Cooliris, but without that cool 3D effect. Now, you integrate an audio player which performs online streaming. The obvious solution for this will be using a separate class. 

      Let’s see how these can be implemented with lesser amount of coding without reducing the performance or consistency.

      Taking the case of image loading, create a UIWebView, in the place of an UIImageView. Append HTML script to a string, which would load the image, load the webview and handles everything else for us. Here HTML script would be script tags with an img tag having source specified to that images url.

      Once these initializations are done a webview would be displayed and its content is fetched on access. To have more control over the webview, implement the functions declared in its delegate protocol UIWebViewDelegate. This allows us to handle events such as loading webview, loading finished, link clicked etc.

      The size of the webview can be changed easily in accordance with the image size by just finding the image size using javascript and adjusting the webview accordingly.

      Coming to the audio player, there is no need for creating a class which handles streaming, playing, pausing etc. Webview can implement the same functionality in a much easier way. Initialize the webview with the URL of the file to be played and you’re done! A separate class can be substituted with just a few lines of code.

      Some android tablets had an issue in supporting the Android Google API. By creating a local webpage which loaded a map using Google Maps Javascript API V3, this problem can be solved. It is also possible to create a javascript interface in an activity which helped in accessing resources from the local webpage during execution.

      Definitely webview is for displaying webpages and its contents, but utilizing it in right places at the right time gives us much more than that.

      iPhone/Android Development Team

       

        Connecting with iPhone and Android tablet PC

        Tuesday, July 6th, 2010

        Protocols for connecting ERP solutions with tablet PC

        We can consider different protocols to enable connection between enterprise data and hand held devices such as Apple iPhone and Google Android to write software programs for android applications and iPhone applications. They are SOAP, JSON and XML-RPC.

        SOAP has a security extension which can be used to define features such as encryption, data integrity  However being an XML standard, it only defines the standard. XML-RPC provides no such feature. JSON has security issues as the data passed is generally directly executed by the server, hence susceptible to data injection.

        SOAP

        Advantages

        • Widely used.
        • Suitable for complex structures.
        • Standardized by W3C.

        Disadvantages

        • Consumes larger bandwidth for small data.

        JSON

        Advantages

        • Handy for light weight data transfer
        • Can take almost half of the bandwidth as XML for transferring the same data
        • AJAX with JSON has got accepted well since JavaScript has the inbuilt capability to handle JSON data.
        • It does not require parsing libraries in an application as XML does

        Disadvantages

        • It is not standardized
        • Not recommended for complex structures

        XML-RPC

        Advantages

        • Extremely easy to understand, implement, and debug
        • Lighter than SOAP.

        Disadvantages

        • Not being maintained by a standards committee
        • Lot more more complex than SOAP. eg., passing an object as an argument to a function.

          Applying push and pull for Google Android and Apple iPad

          Monday, July 5th, 2010

          Welcome to the tablet computing era

          Android application development

          Are mid sized companies ready to empower their employees for mobility ? Do we have plug and play technology in place to connect to existing business objects without adding needless computing power or incurring unplanned budgetary costs ? Do we build these systems from scratch ? Thanks to recession, times have changed,- for everyone wants a cost saving solutions and they want it now.

           Ogdopus is a ready to use middle tier and mobile client solution to connect your existing databases to hand held devices such as Android tablets and Apple iPads. These are backed by a software product engineering team which brings nearly 2 decades of expertise to your cost advantage.

          Standard features, benefits and offerings

          • Configure data connectivity in under 30 minutes
          • No need to build additional web services
          • Efficiency in field delivery services
          • Scheduled push of information ticker
          • Pull based information on demand service
          • Stateless application, consumes little bandwidth
          • Standard HTTP protocol for firewall friendly access
          • Supports devices such as Dell Streak, Archos, HTC Wildfire, iPad, iPhone etc
          • Connectivity with relational databases such as Oracle, mySQL, Sql-server and DB2
          • XML-RPC protocol as the standard for information exchange
          • Data encryption and support for ssl
          • Saves frequent referenced data locally on sql-lite
          • Trace IP addresses of client requests
          • Trace location and time of requesting client
          • MAC Id blocking
          • White labeled applications for OEM vendors and web partners

          Tablet PC application development

          • Two way sync of data between tablet PC and enterprise information
          • Query By Example (QBE) to define your information stack

          Android Tablet and Apple iPad application areas

          • ERP data access for field staff, remote location management
          • Weekly push based reporting for top and middle management
          • Stock alerts and drug interaction warnings for pharmacists
          • IT infrastructure management alerts
          • Data collection for scientific analysis
          • Information on demand service for physicians
          • Conduct organization surveys and opinion polls
          • Fleet management and accident repair
          • Club membership management and custom reporting
          • Preventive maintenance for production units
          • Information ticket for circulars and alerts
          • Custom connect to open source suites such as Sugarcrm, oscommerce etc
          • UK and USA google map integration
          • Birthday cakes and Pizza delivery services
          • Connect with Sage invoicing and other popular products

           

          Internet changed lives and the information age. The mobile computing devices are here to change personal computing habits. The ubiquitous PC, since IBM invented is finally beckoning change. First generation buyers would now prefer an iPad or an Android tablet over the bulky desktop or the expensive laptop and the stripped down netbook. iPad sold over 6 million since launch and now targets 15 million before the first anniversary. Hardware vendors are ditching proprietary systems and adopting android operating system as their next platform and buying a desktop operating system is turning out to be a thing of the past. Sub $200 dollar hand held devices are already in the market. Cloud computing would make shrink wrapped word processing software products irrelevant.

          The corporate heads like style and convenience. IT managers should be able to work from any location to configure their server farms and sql-databases. Middle managers would access information with ease using touch screen devices. Operational staff should have daily figures pushed onto their personal tablet devices. Physicians want end of day admitted patient information status on life style devices. They all need applications that provide data access between hand held computing devices such as Android tablet, Apple iPad to connect to existing information systems (ERP, CRM, SCM,HIMS etc)

          SMS enabled information engines available in the markets enable some of these operations, but  are restricted by length of text, limited pull functionality and lacks convenience.

          Call or write to us for more information on how our expertise in iPad and Android application development could seamlessly enable enterprise data connectivity for your clients with Android tablets and apple ipads.

            Getting ready with HTML 5

            Friday, June 11th, 2010

            The much awaited HTML5, the major revision of HTML, is expected to take over the world wide web by the end of 2010. It is considered to be the major replacer for HTML 4.01, XHTML 1.0. The most notable feature of HTML5 is its big foot over the plug-in-based rich internet application (RIA) technologies such as Adobe Flash, Microsoft Silverlight, and Sun Java FX. The reason is that, HTML 5 can do whatever these applications can, in a perfect manner with its powerful set of tags and related attributes. If it is about the origin of HTML5, it’s a different story.

            The core developers of HTML, the W3C was found to focus much on XML and XHTML rather than looking forward to real world application needs. The HTML working group felt disturbed over this and they formed a new group called Web Hypertext Application Technology Working Group (WHATWG).It focused purely to evolving web and its future .This group is the core team behind HTML5 and maybe that is why HTML5 is not a W3C recommendation yet. The latest news from Adobe Dreamweaver is that the new version Dreamweaver CS5 will be supporting the HTML5 and CSS3 in its full flavours.

            Now looking over to HTML5 and conventional HTML, the following are the basic changes as an overview.

            1) Simple DOCTYPE

             HTML5 requires very simple DOCTYPE: <!DOCTYPE html>.

            2) Easy attributes for language

            In HTML5 we don’t need to remember xml:lang attributes in the <html> tag. <html lang=”en”> will now make it work.

            3) Trailing slashes taken off

            Void elements in HTML5 such as the br, img and input elements don’t require a trailing slash.

            4) Elements disappeared

            These are the following set of element not supported in HTML5:

            <acronym>, <applet>, <basefont>, <big>, <center>, <dir>, <font>, <frame>, <frameset>, <noframes>, <s>, <strike>, <tt>, <u> and <xmp>

            New tags on deck

            HTML5 Introduces, a very distinct set of powerful new tags.

            ·         audio – denoting an audio stream
            ·         source – the video or audio source files
            ·         video – denoting a video stream
            ·         canvas – a place to draw dynamic graphics
            ·         command – denotes a command button that has information sent to the server or script
            ·         datagrid – references dynamic data in a tree form or tabular data form
            ·         datalist – references a list of data in a drop-down list
            ·         details – provides additional details of a page element, like pop-up help text
            ·         output – references the output of a script or calculation
            ·         progress – represents a progress bar in the completion of a process
            ·         dialog – a conversation or people talking
            ·         hgroup – a grouping of header tags that should stay together
            ·         meter – a scalar gauge of measurement
            ·         time – a date or time

            Features

            High level of user privilege is the most highlighted feature of HTML5.The very new set of tags plays a crucial role for this achievement. . Of all tags  <video> takes the videos through web to a new level. HTML 5 video ensures maximum reach by allowing you to encode your video in as many formats as you need, so that your customers don’t need an additional plugin for viewing the video. It also lets you control every aspect of your video, from who can view it, how long it is, what the content is, where it's hosted and how the server performs etc as far we know till now.

            Considering the Browser side, Google chrome, upcoming IE9, Apple safari, firefox 4.0 etc   are all set up for providing a perfect support for HTML5 pages.

            Drawbacks

            Some of the drawbacks pointed against HTML5 are based on hosting HTML5 videos to sites like youtube. They are

            ·         Encoding of video in at least three different codecs is needed
            ·         Browsers that don't support HTML 5 will work only with the aid of some set of java scripts
            ·         Bandwidth requirements of hosting videos must be satisfied

            Another problem developers have to face is the conversion of XHTML 1 to HTML5, unless we have a well formed and valid XHTML document

            HTML Team @ Software Associates

              iPhone User Interface Design

              Friday, June 11th, 2010

              UI design for Apple iPhone

              As we started working on the iPhone, most of the time we got jinxed with reference to Nib files. Well, one never saw a file with extension .nib as the only available files were .xib. After some digging we found that Apple were referring to Xib files. So we got to wonder why they referred a Xib file as a Nib file as in ‘awakeFromNib’,  while it could plainly be referred to as Xib . Later we realised that Nib files come from the days of NeXTSTEP. Technically speaking whether it’s a Nib or Xib file both served the same purpose, but have different format of storing. Xib files are of XML format and Nib files are archives. But after Building an application if you open the *.app file you wont see any *.xib files, there are only *.nib files. But we haven’t created any *.nib files right? Then how did the Nib files come and where did the Xib files go? Actually while compiling the application, Xcode uses a tool named ibtool to convert Xib files into Nib files, so that we don’t have to worry about conversion from XIB to NIB. 

              Enough about Nib files and Xib files, let’s talk about designing an interface using the interface builder tool.  It’s a great tool linked with Xcode.

              It gives developers the choice to create xib files. Either you should create the Xib while creating the viewcontroller (used to manipulate views and subviews in Xib files) in Xcode or you could create Xib files separately and after adding to Xcode, specify the viewcontroller’s name to its File’s Owner. An application would be preferred to have a single window and multiple Views. Developers can use just the Interface Builder or Objective C to develop the GUI. Both have their own virtues and vices. Interface Builder gives an exact idea as to how components in the interface would look and feel. Developers can adjust the components to meet their needs and make sure it meets the requirements at the same instance. But to have a better dynamic behaviour and maintenance, Interface builder is a hard choice. However if it is done using pure coding it becomes hard to know whether it’s meeting the needs. It challenges the iPhone developer to have a great imagination because he can see what the interface looks like only after building and running it first time, although creating a dynamic interface is fairly simple. One need to use the right mix for best results and happy coding.

              iPhone team @ Software Associates

                iPhone app – news reader

                Tuesday, June 8th, 2010

                iPhone news reader application

                We have recently developed an iPhone application for one of our web portal clients based out of United Kingdom. The application talks to the custom news reader via a web service (LAMP stack) to display the recent updates in a pictorial grid based view. On clicking a picture the iPhone application retrieves the associated news article. It also allows the user to view the news based on categories.

                Challenges – work around and issues solved

                Slow loading of images

                The application loads the latest news in pictorial grid format. When we used synchronous loading the launch of application was really slow. So, the only possible way to load images without hampering the application loading time was asynchronous loading. Even when the application was launched the user felt that it was still being launched as images were still being loaded. Therefore, the user couldn`t interact with the application.

                So we tried creating a new thread (apple recommends avoiding threads) dedicated for image loading. But putting a thread into a different auto release pool, caused unexpected crashes. Initialization of connection and loading images took more time than expected. Our aim was to load images as fast as possible and reduce inconsistency and yet retain the features provided by application. The solution was to remove the imageview and use a webview (used to load web pages) of the size of imageview and programmatically inject an html page with just the corresponding image inside it. 

                Dynamically loading images in Grid format on scrolling

                We wanted dynamic loading of images enabled. The idea was that images were loaded whenever the user scrolled down for more images. We needed to know when the user scrolls down whether we need to download the images. This is because the user could have earlier scrolled down and the application would have already fetched those images.

                A way to implement it was to parse the XML file for the next nine images when user scrolls down for more images (if not already downloaded). We then check whether the scrolling is going beyond a certain threshold (which multiples as the number of images being displayed increases). Then we increase contentsize of scrollview and insert images into it in grid format. 

                Translucent tree structured Menu

                Since there was no translucent tree structure menu for the application we developed one. The problem we faced here was that when views were expanded selection of sub menus weren't happening. Later it was found out that even though the view size was increased its superviews size wasn't getting increased. So the events on the view weren't getting caught. So it is a must that to catch the event of a view it should be perfectly contained inside its superview. 

                Checking network connection

                A network based application it is supposed to give the end user network status details. So we implemented a network status checking class using SCNetworkReachabilityRef. It checks Wi-Fi and Internet connection, but can't guarantee whether the server is available. It just checks whether request was being sent out of the device. So we had to implement another function to confirm that the server is up using NSURLConnection. This enabled us to setup a custom timeout.  

                Best practices for iPhone development

                We have setup continuous integration using HUDSON. This is to prevent integration errors and to have a build version is ready whenever integration is done to the application. Each time a build is done in HUDSON a static code analysis using scan build is done over the source code. Used performance tool to monitor memory leaks and ensured that application had low memory leaks.

                Also read Android and iPhone development

                  Wordpress Mobile Optimization

                  Wednesday, May 19th, 2010

                  Tablet pc and mobile phone access

                  Gone are the days when only desktops/laptops were used to view websites. With the proliferation of mobiles and high-end touch devices like the iPhone, iPad, Palm Pre, Android etc, users expect websites to be displayed in their devices, and rightly so, without the entire layout getting broken.

                  This is especially true in the case of old websites which are based on table layouts. Tables are often of fixed widths, but on smaller mobile screens, the content overflows the view area, and it is often a hassle for users to navigate the page. This doesn't indicate that div based layouts are automatically optimized for mobile view. However they are recommended for performance gains even for desktop sites.
                   
                  Divs can be easily optimized for mobiles, where its often a matter of using a different stylesheet. The stylesheet is chosen depending upon the user-agent which requests the website. The mobile stylesheet will most importantly have fixed pixel widths converted to percentages, among other changes. This ensures that no matter what the client device is, layout will always fit accordingly to the screen.
                   
                  Some other changes that are required for having mobile support are :-
                  1. Content should be highly prioritized for mobiles. Users shouldn't be overwhelmed with too much navigation links, and avoidable pages.
                  2. As many mobile devices don't support Javascript, it should be avoided.
                  3. Only basic css formatting is recommended.
                  4. There should be an option for users to switch to the desktop site.
                  5. In the case of iPhone, there are certain meta tags which have to be included in the head section of the html,
                  e.g.<meta name = "viewport" content = "width = device-width">
                   
                  Optimizing wordpress websites for mobile devices is easy due to the availability of many plugins. The plugins which are worth integrating to your wordpress installation are:
                   
                  1. WordPress Mobile Pack- This is a versatile plugin, which has many nifty features, some of them being -
                  1.    A desktop switcher option in the mobile screen.
                  2.    Automatic resizing of images, splitting of posts into different pages for readability.
                  3.    Mobile Admin Panel when wordpress is accessed from a mobile.
                  4.    Easy css customization, to achieve varied color schemes.
                   
                  1. WPTouch- It optimizes wordpress mainly for devices like the iPhone, Palm, Android, which  have large screens. It uses the iPhone specific features such as hover, buttons, etc which would otherwise not work in low-end devices.
                  1. MobilePress- This plugin allows the use of customized themes. Two types of custom themes are possible, one for iPhone, and another generic theme. MobilePress is also SEO enabled. Mobile visitor analytics can be tracked with the help of aduity.com which is integrated    into this plugin.
                  1. WordPress Mobile Edition- Mobile devices to be shown the mobile theme can be configured manually using this plugin. It provides progressive enhancement for advanced mobile devices. The theme is built using the popular Carrington Theme Framework.

                  Wordpress Team

                  Software Associates

                    Apple vs Adobe: Clash of the Titans

                    Monday, May 17th, 2010

                     


                     
                    The two titans in the web need no introduction – Apple and Adobe. Apple owns the smart phone industry with its iPhone and Adobe has set the standard on Internet streaming content.
                     
                    Sounds like a perfect match?? Not likely so, because what’s brewing is the perfect clash between the giants of the web world. And Adobe doesn’t seem very happy with the way things are going.
                     
                    The first model of the iPhone did not offer support for flash applications and this did not change with any subsequent iPhone model release or iPhone OS software update. Popular sites and applications such as Disney, Farmville and miniclip were not available to the iPhone/iPad users. But Adobe was quick to come out with a work around- its own cross-compiler system- Adobe Flash CS5. It allowed developers to develop content with flash tools which could then be converted to an iPhone native code which was no different from the titles available at Apple’s App store.
                     
                    Now everything seemed to be in place, until Apple released a new draft of their iPhone developer program license. The revised clause in sections 3.3.1 aimed at being a blow on the face of Adobe from Apple. It states in its entirety,
                     
                     
                    “3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited)”
                     
                    This, in effect, restricted applications built with Flash CS5 along with a few others. Or in other words, if you developed your application in Flash and then compiled it as a native iPhone app, you still wouldn’t be able to use it with Apple’s products.
                                             
                    Lee Brimelow (Platform Evangelist at Adobe) responded in his blog as follows,
                    “What is clear is that Apple has timed that purposely to hurt sales of CS5. This has nothing to do whatsoever with bringing the Flash player to Apple’s devices. That is a separate discussion entirely. What they are saying is that they won’t allow applications onto their marketplace solely because of what language was originally used to create them.”
                     
                     “The fact that Apple would make such a hostile and despicable move like this clearly shows the difference between the two companies. All we want is to provide creative professionals an avenue to deploy their work to as many devices as possible. We are not looking to kill anything or anyone. This would be like us putting something in our SDK to make it impossible for 3rd-party editors like FDT to work with our platform. I can tell you that we wouldn’t even think or consider something like that.
                     
                    Many of Adobe’s supporters have mentioned that we should discontinue the Creative Suite products on OS X as a form of retaliation. Again, this is something that Adobe would never consider in a million years. We are not looking to abuse our loyal users and make them pawns for the sake of trying to hurt another company. What is clear is that Apple most definitely would do that sort of thing as is evidenced by their recent behavior.”
                     
                    The second blow came from Apple Inc CEO Steve Jobs himself. In April 2010, Jobs published a letter on his “Thoughts on Flash”. Jobs intended on giving an explanation as to why Apple do not allow Flash on iPhones, iPods and iPads, stating that Apple had few joint interests with Flash. He also quoted the performance, security and reliability of Flash applications in mobile phones as an added concern. To read more, follow this link
                     
                    After this blog appeared on the Apple’s site Santhanu Narayen (CEO of Adobe Systems) replied to Steve in an interview.
                     
                    Let see a few excerpts from the interview,
                     
                    Mr. Narayen responded to a question about Mr. Jobs’ assertion that Adobe is a closed platform as, "I find it amusing, honestly. Flash is an open specification," he says.
                     
                    The technology problems that Mr. Jobs mentions in his essay are "really a smokescreen," Mr. Narayen says. He says more than 100 applications that used Adobe's software was accepted in the App Store. "When you resort to licensing language" to restrict this sort of development, he says, it has "nothing to do with technology."
                     
                    Speaking about Mr. Jobs's assertion that Adobe is the No. 1 cause of Mac crashes, Mr. Narayen says if Adobe crashes Apple that actually has something "to do with the Apple operating system."
                     
                    To conclude, Mr. Narayen says he's for "letting customers decide," but that the multi-platform world will "eventually prevail."
                     
                    Kevin Lynch, CTO, Adobe had his say on the Adobe Conversations blog, where he implied that the ban on flash was clearly a decision solely from Apple and that the users will be provided with a choice of other major participants in the mobile ecosystem. Read more..
                     
                    There has also been a rumour that the public spat between Apple and Adobe may lead to an investigation on Apple over Antitrust Concerns.
                     
                    Apple may not welcome Flash with open hands, but as it turns out Apple is not the only house in the block.
                     
                    The battle has just begun. Follow the two giants closely to see how the battle unfolds.
                     
                     
                    Flash Team
                     
                    Software Associates