Delphi Ios Preview Webminar Summary - Felix John COLIBRI. |
- abstract : summary of the webminar - Mobile marketing - Demos of the full cycle, with standard controls (tButton, tTabControls, native Calendar and ListBox, .PNG images), databases (SqLite, Interbase, DataSnap)
and Indy RSS Rest server for DelphiFeeds
- key words : Mobile Studio, iOs
- plan :
1 - iOS Preview Webminar This is the summary of what I saw during the iOS Preview Webminar which took
place the 21th February 2013, presented by Anders OHLSSON 1.1 - General Marketing presentation - JT - 16 Million developers
- Delphi developers: 3 Million
- since 1998 there was a shift from Windows desktop to Windows+ Web and now to Windows, Web and mobile devices
- 1 billion Windows
- 65 million Mac
- 1 billion mobile devices
- 2 billion web access
- as of today,
- 35 % for Windows
- 65 % for Apple+ Android, with around 44 % for Android (as far as I could read from the picture)
- there will be more tablets than PC in 2013, and they will take 70% of the
market by 2017
- there is a explosion of mobile device usage (home, entertainment, smart TVs etc)
1.2 - Developing Demos - Sarina DuPont Demos of phone applications - the new IDE wizard
- selection of form factor (iPhone 4, iPhone 5 / iPad, rotation)
- toolbar to the top
- label, center, align, sets app title, anchors
- native ShowMessage
- selection of the ios simulator
- uploading to the Mac, running the app in the Mac iOs simulator
- shows templates of apps
- footer
- embedded tab control
- action, assigned to the next button
- button styles
- calendar edit : native iOs datepicker
- custom icon
- keyboard support
- using the camera, taking an image from the library
1.3 - Data Connectivity - Marco CANTU - ClientDataSet, reading a local file
- tabcontrol
- listbox with header, with button, where has action
- Cds
- gets file from document folder
- open, reads the rows and fills a listbox
adds an accessory ">"
- when clicks on a row, activates the second tab, locates the record and displays the detail
- deployment page: deploys customer.css to the standard document of the device
- SqLite
- SqlConnection using the SqLite driver
- tSqldataset
- buttons for creating the table, filling it with some values, reading back
- the rows read are written to a listbox
- Interbase
- SqlConnection linked to InterbaseToGo
- GetTableNames, fills the listbox
- clicking on the Listbox displays the table
- Frame and Visual LiveBindings
- tDataModule, bindsourcedb
- frames
- mainform with a tListBox
- the LiveBindings Designer shows how the DataSet is linked to the visual controls
- has a searchbox in the top toolbar, used as a filter for the dataset
- displays groupings on company names
- at run time, types company names in search box, filters the companies
- can make the filters persistent, or remove them
- more Frames, Ib
- frames, dynamically hosted
- uses local ib, with DbDemo Ib version, deployed on the device
- can select table -> views the customers, with filter
- similar for vendors
- with Items, shows Master Detail handling
- Indy Rss Rest reader
- tIdHttp
- xmldocument : native pascal base xml
- event handler: gets an url (DelphiFeeds in this example)
- loads in xml doc
- navigates in the items
- for each item, grab the title, author,
2 - Online Survey JT did some live survey before the Q&A :
3 - Questions and Answers 3.1 - Hardware Requirements Required : - on the Apple side
- requires Apple Hardware (the code MUST be compiled on Apple hardware as required by Apple developer EULA to package and sign applications)
- Mac Mini is enough
- intel based cpu
- OS:
- the latest public release for Lion or Mountain Lion. It's free in the Mac AppStore.
- You cannot use a Mac OS VM unless you have at least Lion and it's running on a real Mac. This is an Apple requirement.
- not snow leopard
- all "accounts" including i-all logins, certificates etc must be present on development Mac running PAServer - including "simulator" signing profile, "deployment" signing profile etc
- the iOs device (iPhone, iPad)
- for the development, a Win32 OS
So - either the Mac / iPhone hardware connected to a Windows PC
- or a Mac with Windows emulation on the Mac (VMWare Fusion, or
Paralls desktop, any virtual environment you like as long as you can host a full version of Windows and access the network)
The Mac hardware is required - by Apple
- to package and sign applications which will be sent by Delphi
- to run the iOS simulator
- to deploy to device, AppStore, Ad-Hoc, etc.
3.2 - Workflow
The Mac must be organized before we can use it. This was not covered in the conference, but we already had some idea from the Xe2 workflow. As I understand it, setup (done once only) includes: - the xCode compiler and its command line tools
However, you will not need to actually run and work in Xcode. RAD Studio and PAServer takes care of everything for you. XCode delivers the simulator which is launched on the Mac.
The Xcode command line tools also take care of the "ipa package", as directed by the PAServer, automatically managed by the IDE - the PaServer which will communicate via TcpIp with the Delphi IDE
The PAServer (Platform Assistant Server) runs on the Mac. If we are using a Windows VM (Windows running in emulation mode on a Mac) the IDE talks to the PAServer on an open port.
After this, everything (the transfer, the debugging) can be done from the Delphi Win32 IDE
3.3 - Standard workflow After the initial Mac setup - design and develop on Win32, using the traditional RAD Studio (Delphi) IDE
hosted on Windows
- compile directly on Windows, using the Arm compiler
this native Delphi Windows-hosted ARM compiler is provided with Mobile Studio the target code is ARM code (not objective C)
- the app is being compiled and linked on Windows.
- the generated code is transfered to the Mac, using the PAServer
The Ide manages the PAServer in order to - deploy the app to device/simulator
- package it and codesigns automatically
We can then run the app on the Mac iPhone simulator, or transfer to the iPhone / iPad. The iPhone simulator runs on the Mac (there is no Apple iPhone simulator for Windows)
- to test on the iOs device, you need your device connected to your Mac, a select the run or debug option. The IDE will build the application and deploy it to the device for you.
- to show the device screen on the Mac desktop the demo used Reflector (previously known as Reflection). But another fine tool is airserver
Top summarize
- The IDE builds the application using a Delphi-ARM compiler and Delphi Linker
- The IDE then uses XCode command line tools (on a connected Mac) to package and sign the application. Then the IDE automates the pushing of the
application onto a connected and provisioned device.
Our interpretation is the following :
3.4 - Other Questions
- deploying to AppStore will be covered in another webminar.
- customer of the product will get our app like any typical iOs application
- either through the app store
- or through an ad-hoc Mac Enterprise distribution push
- the difference with Html5 Builder is that Delphi and FireMonkey we create full native iOS apps.
- to create custom interface components, we can work with tCanvas (working with OpenGL is not necessary)
- sensors:
- gyro
- accelerometer
- camera
- GPS
- the demo only showed local databases, but a remote DataSnap Server (on Windows) can be used. There is also Web Service (Soap and Rest) support
- there is a windows pre-simulator, but the UI will look very odd, in most cases.
- Android
- later this year, after iOS ships
- the goal is to allow us to take an existing iOS application and recompile it for Android with no code changes.
- windows mobile:
- no release plans for WinRT (Windows 8 mobile) have been published, but it is on the roadmap. The overall goal is to allow us to target multiple devices (including desktop devices) with a single source code base.
4 - Notes My point of view: - the presentation was technically perfect : no glitches, flicker, perfect scaling, crystal clear sound. Its my first webminar, but this is a huge
improvement compared to the early video conferences (granted, the previous rendering was also caused by the video sent to Embarcadero by the authors, using Camtasia or similar tools)
- the marketing stuff was as expected, but is a necessary reminder of what's happening
- the general demo (some controls, including native controls, and the live app construction, loading using the PASserver and the execution on the Mac Ios
simulator quite convincing. So this is the first time I personally saw an iPhone, at least in a simulator !
- the Database and Indy demos covered a lot of ground, and of course, within
the 1 hour time frame, all could not be built in front of us or all code shown. But a nice coverage of local databases and even an Indy demo
- Q&A were to the point
- for the Mobile Studio schedule (launch time), prices, inclusion in which Xe3 version, Android version we were sent back to the roadmap. Embarcadero should take the time it requires to finish the product, since, for a change,
they are not pushed by the September yearly deadline. And then, I will be happy to see the Android stuff gradually coming (still announce for summer beta, by Michael SWINDELL in a 22 feb post)
- the webminar summarized here will be downloadable in a couple of weeks
- other webminars were announced as we get nearer to the launch (or for the launch).
As usual:
- please tell us at fcolibri@felix-colibri.com if you found some errors, mistakes, bugs, broken links or had some problem downloading the file. Resulting corrections will
be helpful for other readers
- we welcome any comment, criticism, enhancement, other sources or reference suggestion. Just send an e-mail to fcolibri@felix-colibri.com.
- or more simply, enter your (anonymous or with your e-mail if you want an answer) comments below and clic the "send" button
- and if you liked this article, talk about this site to your fellow developpers, add a link to your links page ou mention our articles in
your blog or newsgroup posts when relevant. That's the way we operate: the more traffic and Google references we get, the more articles we will write.
5 - The author
Felix John COLIBRI works at the Pascal Institute. Starting with Pascal in 1979, he then became involved with Object Oriented Programming, Delphi, Sql, Tcp/Ip, Html, UML. Currently, he is mainly
active in the area of custom software development (new projects, maintenance, audits, BDE migration, Delphi
Xe_n migrations, refactoring), Delphi Consulting and Delph
training. His web site features tutorials, technical papers about programming with full downloadable source code, and the description and calendar of forthcoming Delphi, FireBird, Tcp/IP, Web Services, OOP / UML, Design Patterns, Unit Testing training sessions. |