Posts Tagged ‘android application’

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.

            Android app for freight logistics industry

            Tuesday, June 22nd, 2010

            Android for cargo management enquiry android freight management customer loyalty

            Android tablet – database connectivity

            The client, in business for over a quarter century, is amongst the largest cargo movers in the nation and has deployed a country wide enterprise resource planning solution to manage the business operations spread over 400 locations, serving over a million small businesses.

            Predominantly handling consumer goods from door to door, there is often a need for the shop owner – manager to know the status of parcel boxes ; whether dispatched, in-transit, arrived or being delivered.

            The client has now offered Value Added Services to priority customers – an Android application which can be downloaded and installed on to android hand phones, to seamlessly connect to the central n-tier server, that queries the real time database for the requested waybill number, picks up the relevant information and displays map based location and consignment status.

            Features and benefits – android tablet application

            • Stateless – low server load and bandwidth usage
            • Firewall friendly HTTP protocol
            • Connect with industry standard SQL databases (sql-server, Oracle, mySql)
            • Load balancing and scalability
            • Automatic service discovery for mobile devices
            • Push events handling to enable polling
            • Supports server farms
            • Detection of authorized hand phones
            • Forward status messages to e.mail IDs
            • Custom messages for rows and columns
            • Configure pay as your go service
            • GPS integration
            • User query statistics to improve customer satisfaction
            • Stores frequent numbers locally
            • Disable service / maintenance mode

            Interested in us building a similar android application white labeled for your client ? Call us today

              Android tablet application

              Tuesday, June 22nd, 2010

              Android applications ; connect with sql-databases

              Android tablet for mobility

              This Android project is possibly one the first of its kind in the industry. Our client, a leading hotelier was on the looking for an easy to use mobile application for restaurant order management that would talk to their existing bespoke ERP suite built on an open source relational database, a middle tier application and a set of desktop client applications to manage operations such as housekeeping, inventory, kitchen order and front office. Being amongst the top eating places in the city, the restaurant had a regular clientele, who enjoyed the traditional cuisine being served.

              The challenge was in building a thick client application on a the android tablet device that communicated with the legacy database, preparing kitchen order tickets and posting them to production. Since there were no ready to use SOAP components, our engineers used industry standard RPC communication frameworks to enable the android app talk to the middle tier – which in turn transacted with the SQL relational database.  The android applications' SQL Lite database was engaged to store basic configuration information and temporary order records. The user friendly GUI ensured that non technical end user managers were able to take orders and suggest the best combination of speciality dishes to the discerning client. The application is under beta release for client feedback with enhancements planned for the next schedule development sprint.
              • SqlLite
              • Remobjects remoting middle tier server on Windows 2008
              • Relational database
              • Tablet PC running Android version 1.67

              The middle tier framework is designed to support industry standard databases such as Oracle, Sql-sever, mySQL, pgSQL, FirbirdSql and DB2 express C

              Interested in building a similar android application for your client ?

              Call us today to discuss the possibilities.

                Continuous Integration

                Monday, May 10th, 2010

                 

                       

                 

                Code Integration

                A software development team consists of a set of developers each working in their own development environments, containing tools to develop. Due to the different environments in which the code is getting built and the need to create a deployment version, there is a need to maintain an official environment and an official codebase for the application being developed. The process of integrating the code for changes developed in the local development environments into the official codebase and ensuring that the intended functionality changes are achieved in the integration testing environment, is the code integration we are referring to here. In the subsequent sections, we will look into some good practices around this.

                Continuous Integration

                Continuous Integration (CI) is a software development practice that allows developers to work as a team, where each team member integrates his work into a central repository, very frequently. This in turn results in multiple integrations taking place daily which presents an opportunity for correcting issues early on. In order to carry out an integration, the code is first verified, converted to a deployable state and deployed to the official stage for integration – the integration testing (IT) environment. Based on the technology involved, this might consist of performing compilation of codebase, post processing of build output etc. Once the changes are integrated and deployed to the IT environment, the product could be verified.
                 
                Why do we need Code integration
                 
                The main goal of CI is frequent verification and correction of errors when changes are introduced to the code base. This rapid feedback allows programmers to correct errors as soon as possible and we keep developing the official codebase, in small chunks ensuring things are fine at each integration.
                 
                How does Code Integration work?
                 
                There are quite a few tools in the market – both open source and licensed ones – which help in creating a CI environment for different technology stacks. In this section we will touch upon the different steps involved in creating a CI environment and types of tools that help us.

                The first step involved in a continuous integration solution is a mechanism to integrate the code changes from the different developers into the official codebase. This can be addressed with the help of a source code control system. A developer checks-out a working copy of the projects’ source code from the central repository to start work. On completing the task at hand, the developer commits the code back to the repository. The source control system will have mechanisms and tools for tracking different versions of the code artifacts, identify conflicts and resolving conflicts between versions. Thus commits into the code repository after any such conflict resolution represents the individual changes being reflected in the project codebase.

                The next main step is to trigger an integration based on the changes. Since a new integration makes sense only if there is a change to the codebase and since it involves consumption of resources, the trigger is usually based on a monitoring mechanism with the source control system to check whether there are any changes and a polling interval to control the number of integrations. CI tools are usually configurable to integrate with different source control systems.

                As mentioned earlier, once an integration is triggered, based on the technology, there will be a series of steps that needs to be executed. The CI tools provide an infrastructure to specify the tasks to be performed. The tasks configured typically involves

                Ø Labelling the codebase and fetching the current version of the codebase.
                Ø Verification / Preparation of code for deployment like compilation
                Ø Keep back-up of build.
                Ø Deploy the build to the integrated testing server.
                Ø Runs required tests.
                Ø Generates reports like code metrics to measure the quality of the code



                The impact of implementing CI and following it in the right spirit is that the development happens in an incremental fashion, with necessary sanity checks at each increment. As a result, there is always an official copy of software that is working quite robust, though it has not yet been subjected to rigorous system testing. Another advantage of the incremental development is that the issues arising out of each incremental integration will be manageable, as opposed to a big bang approach.

                With these advantages in view, we, at Software Associates have invested in CI infrastructure for aspnet ,android application and iPhone app devleopment and are reaping dividends during the execution of projects.

                This post was aimed at providing an introduction to CI. For more information on the practices and implementation of Continuous Integration please check out our next posts. 

                Continuous Integration Team @ Software Associates

                       

                 

                  Android and iPhone tablet browsers

                  Tuesday, December 16th, 2008
                  Quality is free but no one is ever going to know it unless there is some agreed system of measurement. A report by Creative Good showed that 39 per cent of test shoppers failed in their buying attempts because sites were too difficult to navigate. Additionally, 56 per cent of search attempts failed.

                  Portal development is only half the work done. You need professional web site testers who can unearth hidden bugs and enforce webs standards that would otherwise cost your company thousands of pounds in maintaining and fixing these costly errors. In 2004, the UK's Department of Inland Revenue experienced software errors that resulted in a $3.45 billion tax-credit over payment. 

                  Here is a recent report on the horrors of coding errors – surprisingly from a mutual fund company

                  It seems to be happening all over the world – but who or what is to blame? All web developers understand the need to test their own scripts, but few take the time or make it a priority to test early in the web application development cycle. The result is a vicious cycle of few tests, poor-quality code and an increasing amount of debugging work. This is often due to insufficient resources, lack of technical know how, inadequate planning, scope creep and poor design.

                  Our experienced team of web and application testers could help you save thousands of dollars through our manual and automated testing procedures for ERP applications using TestComplete and selenium.

                  We do quality assurance testing services for web portals, extranets and intranets; they include tests for cross browsers, website functionality, performance, security and web standards ; work closely with designers and developers to bring about drastic improvement in code quality and predictability. Our quality assurance projects include big names in United Kingdom such as O2, NHS, Honda, Esprit, Dell and Cadbury.

                  Whether you are based at London or New York,  – our web standards testing, application testing and web portal application development and testing services are available to you at a short notice. We also provide long term independent testing services for web development companies who build portals and social networks to bring about tangible benefits in testing time and shorter version release cycles

                  What we provide

                  #Standard operating checklist with severity of errors
                  • Critical Error
                  • Lack of Functionality / Logical Error
                  • Not Living up to Specification
                  • Spelling or Grammar Error
                  • Design Problem
                  # Web security
                  • SQL injection
                  • Bot login prevention
                  • JavaScript loopholes
                  • Password protection
                  • Document privacy
                  • Reader privacy
                  • IP restrictions
                  • Credit card encryption
                  # HTML web standards
                  • W3C standards
                  • Web accessibility
                  • Section 508 compliance
                  • AAA compliance
                  • XHTML compliance
                  # Cross browser compatibility testing
                  • Internet Explorer 6
                  • Internet Explorer 7
                  • IE 8
                  • Firefox 1.5 browser
                  • Safari browser for Mac and Windows XP
                  • IE 5.2 for Macintosh
                  • Netscape browser 7.x
                  • Opera 8.x
                  • Android and iPhone tablet browsers
                  # Coding and performance
                  • Portal development standards
                  • Web services testing
                  • Web load performance testing
                  • Automated web testing
                  • Web site optimization
                  • Website coder matrices
                  # Requirements
                  • Functional specification of the project
                  • Client / Admin login access on staging server
                  # Engagement models
                  • Pay per bug
                  • Fixed hour testing
                  • Agile testing for large projects

                  Write to us to know about skill sets and the services that we can provide to you. 

                    Web Development Partnership Programme

                    Saturday, November 24th, 2007

                    Web development partnership, new york, london

                    Web Design & Web Development Partnership Program from Software Associates

                    Web partnership business model has matured over the years with more and more firms providing value added services apart from giving definite cost advantage, which translates into better margin for their partners. As the trend suggests a higher number of SMEs ( Small and mid sized organizations) are engaging in business models for scalability, cost optimization and better synergy between their core competence and market requirements.

                    For well over a decade we have been involved in building relationships with our clients worldwide. We have evolved, grown, and adapted ourselves to meet the needs of our associates. Our web development partnership programme is focused on Web Design firms, Creative Agencies, Online Marketing firms, small & midsized IT companies and individuals (Freelance Web Consultants and Web Designers) catering specifically to their needs and working methodology.

                    Why you should work with us? 

                    We work so as to complement your business model; you can modify your offerings, select teams without having to go through the hassles of maintaining excess capacity or adding new facilities. Some of the benefits for you include non competing model, work ownership, cost advantage, breadth of technology offerings and extensive support in areas related to project management and marketing. So if you happen to be an individual or firm who is looking for an extra source of revenue generation you need not go any where else!

                    Software Associates

                    • Trust built since 1991
                    • More than a decade of project collaboration experience
                    • Experience in handling non-technical clients
                    • Better understanding of cross cultural issues
                    • In built, client management tool, enabling effective communication
                    • Robust development process based on continuous integration
                    • Immaculate project execution using Agile Scrum methodology, which results in
                      • Better requirement gathering
                      • Faster time to code and deliver
                      • Robust and optimized code
                      • $ savings
                    • And an excellent resource pool

                    We are always on the lookout for long term technology partnerships and can provide excellent client references and project case studies to walk the talk. We value your privacy and ensure that no information without your consent will ever go out of our organization. Our engagement model let you grow without adding extra capacity, helps you see through resource crunch and lets you offer entire gamut of services to your clients without worrying about cost or project quality. 

                    Read about our iPhone and Android application development competencies

                    Instant signup for a no obligation pilot project! Fill our contact form to get going now!