Tutorialsd ED10 01-23-12-V2 Eng
Total Page:16
File Type:pdf, Size:1020Kb
SD Tutorial Mobile and Smart devices Development Solution - Page 1 SD Tutorial Introduction The IT industry is well aware of the significance that smart-phones, tablets and smart devices in general have acquired in the everyday life of consumers and computer system users, both in their personal and professional lives. The need of companies and developers to quickly include these technologies to enhanced business and towards future opportunities is also obvious. This revolution that involves the market and its users implies two main features to be considered. One is the so-called “user-centric” aspect, and the other deals with the device market which has become highly dynamic. The “user-centric” conception places users in a position to define the technology of their choice, like never before in the history of the computer industry. Not only do they choose the browser of their preference – as it happened in the Web era – but also the device, its size and operating system, and can even select the applications to be installed in it, according to the “user experience” they expect from such applications. In a clear change of the relations between users and technology, it is the user who determines where, how and for what purpose the devices will be put to use, thus shifting from the traditional user role to a consumer role. This reality implies new levels of demand in the development of applications, where new releases, in addition to being capable of execution on an increasing variety of devices, must also behave in a particular manner expected. Besides supporting the typical interaction modes (the dialogue provided by the device and used daily by the user), applications are also expected to enable access to resources such as GPS, cameras, telephones, where they must interact with the devices’ own applications in order to allow for sending messages with the messaging applications installed in the device, or other native capabilities or functionalities, specific of each device. So far, it has been usual for companies, and not users, to be in charge of assigning smart devices. Nowadays, there is a notable trend for more flexible practices, known as BYOD (“Bring Your Own Device”), which obviously represents greater difficulties for technical and development departments within corporations. And as if that weren’t enough, even if companies provided their work forces with defined devices, they could not determine the devices to be used by customers. And not having available the solutions that customers require for their devices would be an aspect detrimental to marketing strategies, sales and business in general. It is a must for corporate applications to allow the possibility of being run on multiple platforms, even when this has traditionally been a more costly choice. High dynamism The cost of “manually” codifying native applications for each and every platform would be huge. Also, a common aspect that is also critical is the fact that no one can be sure as to which platforms will prevail, or what could happen with new releases in the market, and this causes a great deal of uncertainty when it comes to defining a language and a platform to create a system. This leads us to the next feature of the revolution described: the dynamism of smart device markets. New devises are introduced on practically a daily basis, made by new or renowned manufacturers, for the usual or for new operating systems and languages. So the environment is under continuous evolution, and no signs of stability seem to be on their way, at least in the medium term. As new proposals, players and attempts to lead the market keep coming our way, any platform defined for a given instance will be, most likely in the short term, subject to great changes in order to keep up with the market trend, or otherwise it will lose in its race against competitors. Mobile and Smart devices Development Solution - Page 2 SD Tutorial This situation turns the task of deciding upon a main platform for development, even for the corporate sector, into something difficult to attain, with complex maintenance procedures. So, the idea of deciding also implies some degree of giving up. It is also important to bear in mind that the time for amortizing the cost of a project may be significantly reduced when it relates to a single platform. In such a context, GeneXus - a program to generate programs – is particularly important since it is based on a development paradigm oriented at knowledge and technological independence. This premise has been in place for over 20 years, since GeneXus was created to generate applications for AS400, up to our days, when the applications generated are 100% native smart device applications (Objective-C for iOS, specific Java for Android and specific Java for Blackberry/RIM), all connected to web services (Java, .NET or Ruby), which in turn are capable of accessing the data layer (DB2, Informix, MySQL, Oracle, SQL Server,) of a corporation. All this in an automatic manner, without the need to write a single code line. Methodology GeneXus reduces every application, every program and every development problem to user views, ideas, concepts in order to build a representation of the software desired that is not related to any specific technology. Such technologically independent representation is called “Knowledge Base”. Based on it, GeneXus automatically generates 100% of the application (device, communications via services and data) in the languages selected, without the need for users to master any of them, and only requiring to focus on the more creative tasks and on the business itself, leaving to GeneXus the more unwanted tasks like codifying solutions, creating databases and deployment. Mobile and Smart devices Development Solution - Page 3 SD Tutorial Creating Applications with GeneXus Let’s see GeneXus in action: 1. The starting point is a Knowledge Base of real estate offices that includes a “Property” object with the following attributes: PropertyId, PropertyAddress, PropertyImage, PropertyContactPhone, PropertyContactEmail. Each attribute is either of a generic type (Numeric, Date, etc.) or pre-defined (Phone, Image, Address, etc.) with specific semantics on the device, which allows, for instance, making phone calls of locating an address on a map with a simple “tap”. Mobile and Smart devices Development Solution - Page 4 SD Tutorial 2. Applying a pattern to the TRN Now we apply a pattern (Work With SD) with predefined design, to show, upon a given entity (in this case the Properties), a list of the properties, so that when any of the properties is “tapped” on, all related details may be viewed. 3. The platform/s to be generated are selected: In this case we will generate for the three platforms; the data layer will be MySQL and the data services will be in Java. Mobile and Smart devices Development Solution - Page 5 SD Tutorial 4. Then it is executed. When the application is to be executed, all the above-referred components are generated: database, services layer and presentation layer. Mobile and Smart devices Development Solution - Page 6 SD Tutorial It should be noted that all this may be executed either locally or automatically by changing a configuration property, with the possibility of deployment in the Amazon cloud or any other selected. This enables the application’s time to market to be significantly shorter, since any user in the world has the possibility of using it with just a connection to the Internet. Even iOS includes something known as “Knowledge Base Navigator”, which allows the quick prototyping of the application, without the need for a MAC. Mobile and Smart devices Development Solution - Page 7 SD Tutorial 5. Execute the application. Android 1.- List of real properties stored in the data layer (MySql). 2.- Interaction with the data layer from the device. Mobile and Smart devices Development Solution - Page 8 SD Tutorial 3.-Detail of an element selected from the list, with just one “tap”. 4.- Native interaction with the device, Location, Telephone, e-mail, with a single “Tap”. Mobile and Smart devices Development Solution - Page 9 SD Tutorial Just as we generate the application for Android, we can do the same for IOS and BlackBerry. Mobile and Smart devices Development Solution - Page 10 SD Tutorial Mobile and Smart devices Development Solution - Page 11 SD Tutorial Blackberry Even when the application’s concept is the same, at the implementation level it is defined for each device. So, maps in iOS are viewed with the iOS own particular style (including its whole look and feel), photos in BlackBerry benefit from the screen’s specific resolution, etc. In sum: the user experience preserves the device’s own style, for it is not a generic application strange to the user. Despite the design pattern applied, it is possible to configure that the list type not be shown and for actions to remain always visible, among other options. It is also possible to modify their form or to add actions, since it is a fully customizable application. Mobile and Smart devices Development Solution - Page 12 SD Tutorial Plus: Web and HTML5 Because the “Property” entity was defined in the Knowledge Base, with the same logic, it is possible to generate web applications besides the application for SD: This allows for an integrated solution with a web component and another component for the various SD. Everything in one single solution, based on the same Knowledge Base. Conclusions With GeneXus it is possible to generate, from a Knowledge Base, native applications for SD or as part of a web application with the following features and advantages: Multi-platform: Android, iOS (iPad, iPhone and iPod), Blackberry (RIM). 1. 100% native, compliant with the user experience expected from users.