Fernando Rizotto has an example of using XE4 on iOS to read a barcode. He is using an iOS specific library. Another library that is available on both iOS and Android is OpenCV. It is a full open source computer vision library with a lot of great features, one of which is reading barcodes.
CodeRage 8 is right around the corner!
My friend came up with the 6 Stages of Debugging:
- That can’t happen
- That doesn’t happen on my machine.
- That shouldn’t happen.
- Why does that happen?
- Oh, I see.
- How did that ever work?
Although you could apply the Kübler-Ross model too:
- Denial – It must be user error! Are we sure their system is supported?
- Anger – By filing this bug you have questioned my family honour. Prepare to die!
- Bargaining – What if we just update the documentation? Can we tell the users this is a feature?
- Depression – All my code is broken! I have no idea what I am doing! I’m going to lose my job.
- Acceptance – Oh, that was easy to fix.
Do you ever find yourself in these stages?
The permissions required by a Delphi XE5 Android application are defined through the Uses Permissions dialog. It is found under Project -> Options… [Shift+Ctrl+F11].
If you select other Targets besides Android then the list is blank, for now. By default the following common permissions are selected. If you do not select a permission then any calls you make that require that permission will fail. The “Internet” permission is required for any network access, even your local network.
- Access coarse location
- Access fine location
- Call phone
- Read calendar
- Read external storage
- Write calendar
- Write external storage
- Read phone state
If you scroll down the list you will see an Advanced node which contains permissions that are less commonly used permissions. For many apps you will never need to change these permissions, but your users may notice the ”services that can cost money” warning next to Call phone and Internet permission request, so you may want to remove those.
The requested permissions are automatically added to the AndroidManifest.xml file, which is read by the Android operating system and Google Play store to know which permissions your app requested.
I’m excited to announce the following new MVPs have joined the Embarcadero MVP program:
- Alessandro Federici – USA – alessandrofederici.blogspot.com
- Xavier Pacheco – USA – tech.xavierpacheco.com
- Roman Kassebaum – Germany - blog.kassebaum.eu
- Alex W. Lulin – Russia – 18delphi.blogspot.com
- Roman Yankovsky – Russia – roman.yankovsky.me
- Emilio Pérez – Spain – www.emiliopm.com
- Jeff Lefebvre – Canada - kiwistamp.ca
- Dave Nottage – Australia – delphi.radsoft.com.au
I’m talking with a number of other individuals who will also be joining the MVP program shortly. These are in addition to all the fabulous MVPs already listed in the MVP directory. We are in the middle of a major overhaul of the MVP directory, after which all the above members should be reflected there.
When talking about Delphi XE5′s support for Android and iOS, someone usually asks if we plan to support Windows Phone, but never asks (that I’ve heard) if we plan to support Blackberry. In the news we keep hearing how Blackberry is struggling and losing market share, while Microsoft is fighting to gain market share. Interestingly Blackberry is still ahead of Microsoft.
Looking at ComScore’s latest numbers we see Blackberry has 4.3% while Microsoft has 3.0%. Both are still in decline over the long haul. So even if Microsoft captured Blackberry’s 4.3% and Symbian’s 0.3% they would still only be at 7.6% compared to Android’s 51.8% and Apple’s 40.4%.
Microsoft has a way to go before they become a serious contender, and any other smartphone OS will be fighting an uphill battle to gain a foothold. With Microsoft’s deep pockets they could ride out a much longer storm than any upstart in this space, so I expect they are the only one who could turn up as an actual 3rd alternative.
Very exciting to see an update from TMS for their TMS Pack for FireMonkey with support for XE5 and Android (as well as iOS, OS X and Windows). Their pack includes a great diverse collection of controls for both mobile and desktop apps.
Fragmentation is the term used to describe all the variations available on the Android platform. Android has many manufacturers and models, unlike iOS where there is only one manufacturer, and they only have 3 (or 4) different models: iPhone, iPod, iPad (and iPad Mini).
The Android Dashboard is a great resource for tracking the adoption of different versions of the Android OS. It is updated monthly and also covers screen sizes and densities and Open GL versions.
Another great resource is OpenSignal fragmentation report. It shows market share by model and manufacturer, as well as some different ways of looking at the information in the Android Dashboard, as well as screen size. It appears to be updated annually.
I didn’t realize Samsung had almost 50% of the Android market, and I expected HTC to have a larger share. No wonder Apple feels threatened by Samsung. Noticeably missing from their list is any Amazon Kindles or Barns and Noble Nooks. That could be because they do not access the Google Play Store by default. I didn’t see the method of data collection.
Fragmentation is a bit of a headache for the app developer because there are so many different variations to take into consideration. The flip side though, is the flexibility of Android has really lead to its mass adoption. It works in both the ultra high-end luxury devices as well as the low-end economy devices. So while it is difficult to get an app that works on all devices, you still have a lot of possibilities to choose from.