Thursday, May 24, 2012

Reflection for Mac

Just bought this brilliant piece of software -

Now I can demo iPhone/iPad apps on the Mac without cables.

It works over AirPlay with no software needed on the iPhone/iPad.

Works with iPhone 4S and iPad 2+.

I've already made sure that Camtasia can screen record the iPad screen on the Mac as well. Looking forward to using this in upcoming webinars!

Tuesday, May 15, 2012

MathViz for iOS updated and free for two days!

MathViz 1.1 update has been approved. I added gesture support and a reset button.

Pardon me while I play around and get a feel for how pricing campaigns work... ;)

MathViz 1.1 is free for two days. I believe I exhausted the potential for new customers (without doing any marketing) so the party right now is up to just a couple of pizzas (if I do Papa Murphy's Take'n'Bake)... ;)

Please feel free to download MathViz in the next couple of days while it's free. Please consider reviewing it as well.

BTW, MathViz will be permanently free at some point, and the source code will be freed at some point as well.

Thanks for playing! Enjoy!

Tuesday, May 8, 2012

Playing sound on iOS? Anyone have a working Delphi XE2 FireMonkey sample?

I wish I had time for everything... I've tried this one a couple of times, but have run into issues with parsing framework this and that... ;)

So, here it is... Anyone got a simple example that plays a single sound effect and/or plays a background track?

From files that you deploy with the app (resources).

Background track from existing music library on device would be a sweet bonus.

I'll make sure you get credit if I use it in upcoming blogs, webinars, etc.


Monday, May 7, 2012

3 more iOS components added - Pinch/Zoom/Rotate gesture recognizers plus a custom switch

I've uploaded three more components to CodeCentral. There are now 13 components and 8 demos in my submission.

The three components added:

PinchGestureRecognizer - zoom/pinch

RotationGestureRecognizer - rotation

Switch - custom labels for TSwitch - ON/OFF or YES/NO (or any 1-4 letter words you want)


Modifying FMX_Platform_iOS.pas to support surface mainWindow and add device orientation support

Here are the steps that I use in order to surface a couple of things that some of my custom iOS components and apps need.

These modifications are not supported by anyone. Except maybe me. You apply them entirely at your own risk.

Modify FMX_Platform_iOS.pas on your MAC as below. It's typically located in the /Developer/Embarcadero/fmi directory.

CAUTION: Save a copy of FMX_Platform_iOS.pas FIRST!
CAUTION: Any update of XE2 will delete your changes, so keep this file around if you have to redo the changes.


unit FMX_Platform_iOS;




// TUIViewController and TUIWindow declarations moved from implementation to interface section

{ TUIViewController }

TUIViewController = objcclass(UIViewController)
function shouldAutorotateToInterfaceOrientation(AinterfaceOrientation: UIInterfaceOrientation): Boolean; override;
procedure didReceiveMemoryWarning; override;
procedure didAnimateFirstHalfOfRotationToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation); override;
procedure didRotateFromInterfaceOrientation(fromInterfaceOrientation: UIInterfaceOrientation); override;

{ TUIWindow }

TUIWindow = objcclass(UIWindow)
Text: UITextField;
mainView: UIView;
mainController: TUIViewController;

// mainWindow moved from implementation to interface section
// currentOrientation added to give current device orientation
// supportsPortrait etc added. You simply change these in your app code to False if not needed

mainWindow: TUIWindow;
currentOrientation : UIInterfaceOrientation;
supportsPortrait : Boolean = True;
supportsPortraitUpsideDown : Boolean = True;
supportsLandscapeRight : Boolean = True;
supportsLandscapeLeft : Boolean = True;



function TUIViewController.shouldAutorotateToInterfaceOrientation(
AinterfaceOrientation: UIInterfaceOrientation): Boolean;
Result := ((AinterfaceOrientation = UIInterfaceOrientationLandscapeRight) and supportsLandscapeRight) or
((AinterfaceOrientation = UIInterfaceOrientationLandscapeLeft) and supportsLandscapeLeft) or
((AinterfaceOrientation = UIInterfaceOrientationPortrait) and supportsPortrait) or
((AinterfaceOrientation = UIInterfaceOrientationPortraitUpsideDown) and supportsPortraitUpsideDown);

if Result then
currentOrientation := AinterfaceOrientation;


Saturday, May 5, 2012

iOS Formula Keyboard

Just a teaser. I'll probably add this as an InAppPurchase for MathViz when I make MathViz free. ;)

Thanks to those who bought MathViz already! 25 copies sold for $0.99 each in 4 days! Enough for a couple of six packs for the office. ;)

PS: Source code for this one coming too. Mainly custom style work in this one.

Friday, May 4, 2012

May the Force be with you! (and MyEDN for iOS)

Happy Star Wars Day!

MyEDN was originally submitted to the AppStore for review on April 9th.

My first mistake was not including, setting up and populating a test account for Apple to test MyEDN. DOH!

That cost me about a week, because the review process is clocking at about 6-7 days it seems.

They sent me a request to update the review notes with a test account and test instructions, and finally submit the new meta data. Unfortunately the reviewer had put MyEDN in the wrong state, and it took me a while to figure out that the only way to get it back into Waiting for Review was to submit a new binary (actually the same one).

About a week later it was rejected with some unspecific pointers about the UI. This was the login screen at this point:

I asked for clarification, and got another couple of messages back from the reviewer that weren't specific enough for me to figure out what exactly they wanted instead.

I decided to use the Appeal option, and while waiting for that process I ripped the UI apart and recreated it from the ground up. I added info screens throughout as well as more functionality.

Yesterday I got a call back from a very nice person of the App Review Board, and it became clear that the issue wasn't UI at all. I had a link to in my description of MyEDN. This is considered disallowed marketing, even though my phrasing was specifically "PS: An EDN account is required to use this app. If you don't have one, you can create one here..." - in retrospect a link to would probably have worked better, but I opted to remove the link completely. I don't foresee anyone that isn't already an EDN member downloading MyEDN anyway. Finally, Apple had also found a crash bug, which is now addressed.

By this time I already had the new UI ready to go. My plan was to make it an update, but since MyEDN still wasn't approved I simply uploaded it as a new binary and it's now pending review in this form:

I'm much happier with this look and feel, and my hope is that the Force is with MyEDN this time. If the review cycle stays on it's current 6-7 day schedule MyEDN should go into review by the end of next week, and hopefully I've knocked out all issues and it will be approved so that you guys can have at it. I can't stand the fact that Cleggy teases me on a daily basis that EDN Mobile has been in Google Play for weeks and that he's updated it multiple times in the last couple of days. I told him that in his case no review was required, and that his UI is still nowhere near mine. Apple is holding MyEDN to a much higher standard than that! So there, Cleggy... ;)


PS: All this experience with App Review feedback, Appeal etc will be awesome fodder for upcoming webinars as well, so that all of you can create awesome iOS apps.

Tuesday, May 1, 2012

MathViz 1.0 for iOS approved and in the AppStore now!!!

MathViz 1.0 AppStore link

Before you ask why it's $0.99 and not free - I wanted to see if I could get a FireMonkey paid app approved, and I'm very happy to say that I could. And anyone can, of course!

I will leave it at $0.99 for the next couple of weeks, and anyone that wants to "donate" to a lunch, dinner, party or whatever it turns out to be, can do so in the next couple of weeks. After that it will become free for all.

The link above is live, but it will take up to 24 hours for MathViz to be searchable in the AppStores world wide.

Your purchases of MathViz will go to a couple of things - Apple, the IRS and finally some kind of FireMonkey party of some kind - total volume of paid sales and actual payouts from Apple will determine what will happen.

Now that MathViz is available I will use it for blog fodder, webinar fodder, and I will of course publish the source code.

Thanks everyone in advance for playing and giving feedback!

MathViz 1.0 is powered by TExpressionParser - a flexible and fast expression parser for logical and mathematical functions by Egbert van Nes, with contributions by John Bultena and Ralf Junker. Thanks for Egbert van Nes' explicit permission to use it in a paid app. :)