Thursday, 17 May 2012

Mono for Android 4.2 introduces a UI designer

One of the common complaints regarding Android development, regardless of the development tool in use, is the lack of a good UI designer. The usual result is that UIs are designed in XML by hand.

The people at Xamarin have clearly taken this rather seriously and spent some time building up a new UI designer for Mono for Android projects, which is now available in the recently released Mono for Android 4.2.

The UI designer offers all the standard UI controls in the Visual Studio toolbox, and gives you the option of visual drag/drop/property editing or the more traditional manual XML editing.

AndroidUIDesigner

Also new in 4.2 is:

Full details of the Mono for Android 4.2 release can be found on this announcement post.

DataSnap information links/info

Last Friday’s instalment in the Developer Direct webinar series was entitled Multi-tier, Scalable Development with DataSnap. During the session I collated the links and references together so i could post them here for reference (I’ll doubtless need some of them at some point).

Random information picked up during the webinar:

  • in Delphi 2006, MIDAS (Multitier Distributed Application Services Suite) was renamed to DataSnap
  • Delphi 2007 re-architected DataSnap to be entirely written in Delphi and had all previous COM-dependencies removed. It was extended to support COM/DCOM, TCP/IP, HTTP & HTTPS
  • Delphi 2007 introduced a DBX (dbExpress) database driver to access data from remote DataSnap servers
  • DataSnap proxy classes can be regenerated (e.g. if the server has been extended to add functionality) using the context menu on the TSQLConnection component
  • Delphi XE DataSnap demos on Code Central can be made to work in Delphi XE2 by adding IndyPeerImpl into the project file uses clause
  • DataSnap servers are written using VCL so can be Win32 or Win64
  • DataSnap clients can be written on many platforms thanks to the wide range of mobile DataSnap connectors:
    • Delphi (VCL or FMX)
    • C++ (VCL or FMX)
    • C#
    • Delphi Prism
    • FreePascal (Delphi XE2 Update 4)
    • Objective-C
    • JavaScript
    • PHP
    • Java (inc. Android & Blackberry)
  • DataSnap server development requires the Enterprise or Architect version of Delphi, C++Builder or RAD Studio.

Most of these notes I scrawled down as they came up so there is every chance the odd detail may be errant….

Android development session at mobile-focused conference

On 29th June, 2012 I’ll be travelling to Cambridge, UK to speak at Mobile East 2012, a mobile-focused conference. I’ll be delivering a session on Android development using RemObjects’ Oxygene for Java development tool and catching several of the other sessions during down-time on the day.

I’m looking forward to it – it’s been some months since I’ve spoken at a conference!

Tuesday, 8 May 2012

Rooting a HTC Sensation XE

A few months back I rooted my old phone, a HTC Desire, and put a custom ROM on it. I did this rather late in the day, after having upgraded to a newer HTC Sensation XE and encountered some stumbling blocks along the way thanks to various OTA (over the air) updates that had been installed on the older phone, which made many available rooting guides and tools out of date and unable to help. However, when eventually done, the phone received a custom ROM (Supernova), demonstrates a fabulous battery life and has all apps and data regularly backed up.

The newer dual-core Sensation XE was demonstrating a sub-optimal battery life (whether or not this related to the recent OTA update to Android 4.03, or Ice Cream Sandwich (ICS), I couldn’t really be sure) and lacked a good solution for a thorough backup, so I thought it might be an idea to root this one also. This post is a write-up of various notes I’ve made getting my head around the quite complicated process of rooting a specific HTC Android phone.

Friday, 4 May 2012

FireMonkey information links/info

I checked out today’s webinar on FireMonkey and collated a bunch of links and facts that came up during the presentation. Anyone looking at FireMonkey and wanting to get some background and foundation on the subject should check these out:

Random information picked up during the webinar:

  • Delphi’s library delay loading is available on Windows but currently not on Mac.
  • C++Builder can readily consume a Delphi unit. Add the Delphi unit to the C++Builder project, then right-click on the file in the project manager and choose Make to produce a suitable C++ .hpp header file for inclusion elsewhere in the project.
  • Unlike the old Kylix project, Delphi & C++Builder in RAD Studio XE2 are both solely Windows applications. However Mac apps can be run and debugged across a network link using PAServer, which ships in the box. PAServer works on a specific port (64211 by default) so should be easy to configure in the context of a firewall.
  • Android support being looked at. When it is ready, your FireMonkey code will pay off and be usable on the Android platform.
  • Older toolbox code with assembly code needs work before it can be used with FireMonkey for cross-platform. Realistically it would be best re-written in high level Pascal code. Alternatively you would need to conditionalise and re-write for the various architectures (Mac, Windows 64-bit, Windows 32-bit), which presumably would involve a lot more work.
  • In FireMonkey control parents do not constrain the view of their children. A button on one side of a form can be a child of a control on the other side of the form, no intersection at all is required.
  • Frames. Create a form with all required controls, which in VCL might be done as a frame. At run-time add a layout on the form and set the parent of the would-be frame form to be the layout. The Biz Flow demo shows this in use.
  • David I is a big fan of the TMesh FireMonkey component.

Getting Started with FireMonkey eLearning Series

Over and above the Developer Direct series of weekly 2 hour webinars I posted about yesterday, I’ve also just bumped into a weekly series of training sessions on FireMonkey with David Intersimone.

The format is a weekly half hour training session followed by 15 minutes Q&A, each Thursday, starting May 3rd 2012 (yes, I missed the start of this series too!) and running through to June 28th 2012. Each week there is a Delphi-oriented session (starting at 10am PDT, 1pm EDT, 5pm GMT, 6pm BST) and this is followed by the same session for C++Builder users (11am PDT, 2pm EDT, 6pm GMT, 7pm BST).

You can sign up for the series at this link.

Lesson Date Title
1 03 May 2012 Introduction to FireMonkey and Development Environment Setup
2 10 May 2012 Creating your First FireMonkey Desktop Application
3 17 May 2012 The Integrated Development Environment
4 24 May 2012 Programming Language Basics
5 31 May 2012 Designing a FireMonkey HD User Interface
6 07 June 2012 Connecting to Data
7 14 June 2012 Creating a FireMonkey 3D Application
8 21 June 2012 Using FireMonkey image and Animation Effects
9 28 June 2012 Building Multi-Client, Multi-Platform, Multi-Tier applications

Update: as the series goes on, this landing page is being updated with links to replays for the Delphi and C++ broadcasts as well as course workbook PDFs – great collation of resources from the series!

Thursday, 3 May 2012

Embarcadero Developer Webinar series

I'm not sure why I didn't notice this series of free webinars starting, but i found out eventually, so that’s the main thing.
Embarcadero have started a weekly series of 2 hour webinars on developing using their current RAD Studio toolset, RAD Studio XE2, primarily targeting a European audience, based on the broadcast times.
You can see the list of webinars and their times and also register to take part using their sign-up link. The list of webinars is also shown in the table below.
Episode Date Topic
1 27 April 2012 Convince Your Boss To Upgrade You To RAD Studio XE2
2 04 May 2012 FireMonkey : From Basics into Practice
3 11 May 2012 Multi-tier, Scalable Development with DataSnap
4 18 May 2012 Delphi Language Focus (Object development, RTTI, 64 Bit)
5 25 May 2012 From Data to Business Information with RAD Studio XE2
6 01 June 2012 Mac Development for Windows Developers
7 08 June 2012 iPhone/iPad Development with RAD Studio XE2
8 15 June 2012 RAD Cloud
9 22 June 2012 Be Agile Today!
10 29 June 2012 FireMonkey in Action...3D and Beyond! ….Plus! Season One Summary