Saturday, 25 April 2015

ARDroneSDK 3.1 compiled ok in Yosemite!

As I mentioned in this post, it took me lots of effort to get the ARDroneSDK3 to compile last time. So after upgraded to Xcode 6.3.1 and OS X 10.10.3 Yosemite, and had a few successful quick tutorials with WatchKit, the next thing I tried is to recompile the ARDroneSDK3 again. Downloaded latest code the github source and found it's now "v3.1.0".

Strangely, the first run (-t iOS) failed in just about 36 seconds...

Second run with only "-l curl" just to build the curl library, and it failed too, what the.....

Then tried the 3rd run, again with (-t iOS), for some unknown reason, after an extremely long 15 min 43 sec run it works. What a relief...

Why ? You asked. No freaking idea mate! And again as before, this is just to build the SDK library. You then have to import these library to the sample iOS Xcode project to compile into an iOS App.... Don't have time for that today, probably next time...

WatchKit app has much higher success rate in Xcode 6.3.1 (simulator)

I upgraded my Xcode from 6.3 to 6.3.1, tried the same Hello World app as mentioned in previous post (based on tutorial from Natasha's blog). Still running in iPhone 6 simulator, it was much much quicker and it works all the time. That was definitely a huge improvement!

Then tried this "Maps on the Apple Watch" tutorial from Kristina Tsai's blog, and can see the 6 spinning white circles (for the map) in a few seconds time after clicked on run - makes me a bit excited for a few seconds...

But it just keep spinning and spinning until I get the same "Lost connection to iPhone 6" message again. Did a clean and tried 2nd time, still spins for a long time, got bored and stopped it after about 2-3 min wait.  Luckily at the 3rd attempt, it worked, hurray!
Don't know why, but after that it constantly works in all the following attempts, must be magic!

Also run the "Apple Watch" app in the simulator again, as below, it now shows both WatchKit apps as expected.

Well, at least it's not as frustrated as previous Xcode 6.3. Have you played with WatchKit yet? Come and give it a go! Now, wonder which tutorial should I try next...

Be careful with Apple Watch (while holding sharp stuffs)


Hello World WatchKit app "occasionally" works in Simulator

Finally installed Yosemite, and upgraded to XCode 6.3, first thing I tried was to create a WatchKit app using "File => New => Project..." menu options. But I couldn't find the option for Apple Watch and was a bit confused at the first.

Later looked at the Natasha The Robot "Hello World" tutorial, then realised the option is only available after you created the new projects, then select "File => New => Target..." menu option, since at this stage it's not native app yet and can only be treated as an external display like the Apple TV.

After staring at the black box for a long time plus a few restarts, finally got the simple Hello World WatchKit app working in iPhone 6 Simulator as shown below. 

It's definitely not a smooth ride. Sometimes I get this "MobileCal quit unexpectedly" error

Sometimes I get this "Lost connection to iPhone 6" message. And most of the time it's just a black box sitting there, staring back at me...

If I click on the "WatchTest" icon manually to run it from inside the simulator, it just starts up, show a blank screen with white background and nothing happened. Later, noticed I can also run the "Apple watch" app inside the iPhone 6 simulator. 

As shown below, it shows the Hello World WatchKit app name in the "WatchKitSettings" table. This is probably done through the built-in WatchKit, which links the app with the "Apple Watch" app on the iPhone 6 simulator.

Clicked on the "WatchTest" icon and it shows the option of "Show App on Apple Watch" turned on by default, which I believe may be it should be on all the time for the output to be displayed on the watch properly?

Tried turning it off just for fun, and another line saying "GIZMO_APP_UNINSTALLING", wonder what does that mean...

Turned it on again, and the text changed to "GIZMO_APP_INSTALLING".

Not sure if everyone is having better/worse experience than me, from the comments on Natasha's blog, looks like quite a lot of them are unsuccessful - only a black box... My advice will be: (1) wait for 3-5 min, (2) try "Product => Clean" and try again (3) try shut down and restart the simulator.

I guess similar to Swift, WatchKit is probably still in it's early stage and not very matured yet based on my experience. May be should wait for next 2-3 updates?

Wait, just noticed Xcode 6.3.1 been released, will upgrade and see if this makes any difference.

Sunday, 19 April 2015

Xcode 6.3 does not support OS X 10.9.x

This is the Nth time - upgraded my phone to iOS 8.3, then tried to deploy an Unity app and painfully found that Xcode 6.2 does not support iOS 8.3. Great, another Xcode upgrade, just upgrade to Xcode 6.3 should fix the problem.....

No, it's actually much worse than that, Xcode 6.3 does not support OS X 10.9.x, was forced to migrate the whole OS to OS X 10.10 Yosemite.... What a pain...


Saturday, 21 March 2015

Xcode 6.1 does not support iOS 8.2 !

Borrowed a rolling spider drone from friend, and was trying to deploy the iOS Sample from Parrot to my iPhone 5, and couldn't get it to work. My iPhone 5 was listed under "Ineligible Devices" and info about "OS version" shown next to it.

On 3rd attempt, finally noticed this small popup saying "Xcode doesn't support iOS 8.2".....


My Xcode is version 6.1, looks like time for another update...

Friday, 6 March 2015

Oh, no! All my apps been taken off-line.....

Was working on the ARDroneSDK thing, then suddenly quite a few emails from iTune Store arrived at the same time - one for each of my published apps. They all said the same thing - the app status is now "Pending Contract"...

Yes, I didn't pay the A$150 yesterday as I don't have plan to release any new app or update for the next few months. Never realise the impact of not renewing the iOS Developer Program would mean that all my published apps will be taken off-line...

Removed one of the apps, then try to re-install from App Store, this is what I get: "The item you tried to buy is no longer available."... Oh no! Looks like I don't have much choice....

ARDroneSDK3 does not support 64 bit !?! (Fixed)

Tried to create a new project and build a new App using the ARDroneSDK3, as below, keep getting the "symbol(s) not found for architecture x86_64" error for all the ARDroneSDK3 libraries.

Checked with "lipo -info", and as expected, only supports "armv7", "armv7s" and "i386". Missing the "arm64" architecture for 64 bit.

Well, I can manually turn it off, and it will still run on 5s/6/6Plus in 32 bit. Problem is, I remember a while back Apple announced that after certain date (sometime this year?) all iOS apps must support 64 bit. Which means until Parrot releases 64 bit support for their SDK, we won't be able to release any iOS app.....What a pain...

[Update 08/Mar/2015]

According to this link from Apple, it's 1st Feb 2015. So it already started...

And according to this page from Parrot github, they are working on it (ETA 6th Mar ?), hopefully it will fixed very soon.

[Update 08/Mar/2015]
Realised there has been some updates on the ARSDKBuildUtil, so I downloaded from github again and rebuilt the iOS part.

After a few trials, found that when it prompted about what to do about "updated" local file for "Sample" and "curl", have to select "6) Reset" and confirm that you really want to reset it, then it happily rebuilt everything.

As below, in the 2nd last line, can now clearly see that there's an extra "arm64" added, which means it now supports 64 bit as well! Good job! Will put the updated SDK to the Xcode project tomorrow...

Thursday, 5 March 2015

Apple increased iOS Developer Program price by 50% !!

Was going to deploy a test Unity project to my phone, then it complained that "The selected team doesn't have an iOS Developer Program membership".... Damn, I forgot that my iOS Developer Program membership just expired a few days ago....


Logged on to iTunes Connect to renew my membership and was shocked to find the price is now A$149, what the.....

I checked my email and as shown below, from last year's receipt, it clearly shows the amount I paid on 5th March 2014 was A$99...... That's a 50% increase!! Apple, why are you so greedy and mean to your developers??!!

My new toy arrived

My new toy finally arrived today... My Parrot mini drone jumping sumo...

Similar to the SDK experience, I found the manual quite poorly written. All I got was a big piece of extremely thin paper with a few paragraphs of simple instructions, repeated many times in multiple languages.

I heard that I need to insert a memory card for it to record video, so I took out an 1GB micro SD card, search and check and turn the drone around and around, so many times, checking every corner... urh... where the hell is the memory card slot? Then did some research on the net and found that you need a "special memory card that supports micro USB interface" not the very common "micro SD card"...... Did a quick search on eBay and indeed found a few, but this feature certainly was not very well documented/explained, and personally I am not very impressed with their design choice...

The FreeFlight 3 app on iOS was easy to use and I quickly updated the firmware from 1.0.80 to 1.99.0 through the app, quite cool!

However it took me a few searches on the net to work out how to use the "Road plan" function - you have to drag each of the icons on the top to the far right hand side..... Come on Parrot, can't you just add a simple "help" function to explain that? This is another example of bad documentation...

The other thing I am not happy with FreeFlight 3 is, why I can only turn 90 degrees? What about 30, 45, or some free form left/right turn function? This makes driving the drone a lot more complicate as I have to zig-zag multiple times while travelling around the house as there's no 45 degrees turn function...

I also have difficulty making it to jump, always get some message about something blocked. Again, no documentation or explanation to help with troubleshooting...  a bit frustrating...

Ok, to be fair, other than those mentioned, otherwise it seems quite fun. And thanks to so many "to-be-further-improved" areas, this opens up more potential opportunities for everyone like me who's interested in working with the SDK...




Wednesday, 11 February 2015

ARDroneSDK 3 from Parrot - finally compiled!

Thanks to suggestion from darryljackman, I tried a different strategy.

The CheckEnv.py result is all ok for iOS as shown below.


But when I run "./SDK3Build.py -t iOS", I always get first 3 failed and the others not built:


I then tried uninstall all tools (git, wget, automake, autoconf, libtool), and reinstall again but using brew.

This time, at least got first 2 working! The "ARSAL" one still failed...

I then check the log, and noticed it's hard coded somewhere and tried to find "ARSDKBuildUtils/Utils/m4/ARSDK.m4" (see green highlighted part), but my directory name is "ARSDKBuildUtils-master" (see red highlighted part) when downloaded from github, and I can see the "ARSDK.m4" file in there (see yellow highlighted part!


After renamed the directory name, yes! Finally got the whole thing compiled ok. That is definitely a lot of work and the SDK is really badly documented.....

[Update 25/Apr/2015]
Please see this post for info about compiling V3.1.0 version of the SDK in Xcode 6.3.1 and OS X 10.10.3 Yosemite.

Wednesday, 28 January 2015

Not much luck with ARDroneSDK3 from Parrot

Was following information from this link to install the ARDroneSDK3 for the drones released by Parrot on my MacBook, was thinking to compile and deploy the drone controlling app on iOS devices. However not much luck, tried  searching the net but also couldn't find much info.

I ran the "CheckEnv.py" and as shown below it says "iOS: OK"

But when actually run "./SDK3Build.py -t iOS" and after a long wait, the result is as below. iOS: curl, json, ARSAL failed, rest all "NOT_BUILT".

Went through the long list of logs and found lots of errors such as:

Running <xcrun --sdk iphoneos --find llvm-gcc>

Error while running <xcrun --sdk iphoneos --find llvm-gcc>

But I thought from XCode 5 onward no longer uses llvm-gcc??!! according to this link from Apple:

Deprecation and Removal Notice:
Important: Xcode 5 does not support use of the LLVM-GCC compiler and the GDB debugger. Existing projects configured to use LLVM-GCC and GDB will be reconfigured to use the LLVM compiler and LLDB debugger when opened by Xcode 5.

I also installed all the tools mentioned in the ARDroneSDK3 document: git, wget, automake, autoconf, libtool, rpl. Even installed brew, but still not working.... quite frustrating...


[Update 11/Feb/2015]
Finally got it compiled ok, please see this post for further details.

Friday, 9 January 2015

Using SceneKit in Swift playground for the first time

Happy 2015 everyone!

Was playing with "SceneKit in Swift playground" for the first time by following David's answer for this stackoverflow question the other day. However it was quite frustrating as nothing seem to work.

David added new comments about enabling "Run in full simulator" later, which I tried, but still can't see the 3D object....



Strange.... Was stuck for a while, then I noticed on the upper left hand side window of the image David posted (with the 3D red donut) has the same icon as "Show the Assistance editor" (the one with a suit and bow tie).



Clicked on it, and it magically appeared on the screen and starts spinning! Yeah! Why does Apple have to make it so difficult??!!


However, sometimes it just crashed for no reason when I played around with a few parameters, keep getting this error...

One more thing, in case it just stuck and wouldn't move, try "Editor" => "Execute Playground" as shown below.

Did some further investigation, as shown in video below, this is what happened:
1) first only runs XCode 6.1, finder, terminal and quicktime player
2) clicked on the playground file, and XCode automatically runs iOS simulator
3) clicked on "Show the Assistance editor"
4) waited for about 20 seconds, and you can see the 3D red donut starts spinning in both XCode and simulator.
5) The quality of the image in simulator is quite awful as it keeps flickering, tried turn to landscape, but doesn't make any difference.
6) when clicked on XCode to show the version number, the spinning donut on simulator stops, but the one in XCode still running.
video
To be honest, the way that it keeps flickering/flashing, is really awful, any idea what have I done wrong? This kind of quality is quite shocking...

In case you wonder, my MacBook Pro is running OS X 10.9.5. It was running everything quite smoothly when it was OS X 10.8.x, after upgraded to 10.9 the performance and stability declined quite badly.

Don't know about you but it seems I also have more XCode 6 crashes than XCode 5...  Apple, can you please slow down a bit and focus more on the quality rather than fixed annual release schedule? Quite agree that the quality of Apple software is getting worse in every release....

Let me know if you found other tricks, good luck and have fun!




Thursday, 13 November 2014

We need this feature in XCode simulator

Was watching this video from Microsoft  by Daniel Moth about the new "Visual Studio Emulator for Android". Quite impressed by the way you can drag the red dot and move your device in different direction/angle in the simulated 3D space and the application running on the device will receive relevant data accordingly. We need this feature in XCode!!


Thursday, 6 November 2014

Have you integrated Everyplay to your SpriteKit game yet?

Was wondering around on the net looking for ideas a few days ago, and accidentally saw this "Everyplay Github" page talking about "Add SpriteKit example for iOS SDK 1.7.5" - this is definitely something new to me. Remember back in mid February this year, in this post I wrote about Everyplay supports Cocos2D and Unity, but not SpriteKit yet, looks like this has changed!

I downloaded the iOS sample, which is basically the basic SpriteKit with spinning spaceship example from Apple plus the Everyplay SDK installed. Although a bit old (last updated mid May 2014), it works quite well. I was able to record the whole game play, even played around with the iOS only "Facecam" function - as shown below, users can record themselves using the front-facing camera, which is a very interesting and handy feature for game reviews.


First integration with EveryPlay
After some study of the iOS example, I quickly integrated Everyplay with my SpriteKit based Open Source Piano Tiles game, and it only took me around 20 min, which is amazingly quick and simple! I quickly uploaded a short video as below:

https://everyplay.com/users/19215547

Sound Issue
Wait, Huston we have a problem. How come there's no sound? What's the point of a "Piano Tiles" game without any sound??!! 

I tried another game and this time the background music was correctly recorded. Sound effect was also recorded as well, but strangely only the first time it plays, after that no sound at all --- I am going to write another post on this, as it looks like a bug in the 1840 build.

Compared between the two, and found that the Piano Tiles game was using SKAction to play the sound/music, but the other game was using AVAudioPlayer. So may be Everyplay doesn't support sound/music played by SKAction?

[Update] - Sound Issue Fixed!!
Found that if I import the EveryplaySoundEngine

#import <Everyplay/EveryplaySoundEngine.h>

Then replace all SKAction with the "playEffect" method as shown below, then the music/sound get played and recorded correctly, issue fixed!


[[EveryplaySoundEngine sharedInstance] playEffect:@"SoundFileName.caf"];

How long it takes to process a video?
While analysing the sound issue, I posted my 2nd video using the iOS sample game and shared it. However it's over an hour now, when I view that page from my MacBook, it still says "The video is being processed".... Looks like have to wait a bit longer...


Where is the thumbnail screenshot?
As below, the FAQ section mentioned that Thumbnail "is automatically captured as part of the video recording", but I can't find info about how to get that Thumbnail from their web site. Also sent an email to their support mailbox but still haven't got an answer yet.

Documentation can be further improved
Other than these issues, also noticed it's very hard to find any info about SpriteKit on their web site. The "Documentation" section on their web site only contains a few pages, there's surely a lot things to improve for documentation.

Everyplay is an amazing, must-have framework for every iOS game!
Don't get me wrong, although I have been quite picky and listed out quite a few problems, compared with the tones of extra benefit it could bring to your game, it's definitely worth a try!

Most of the games can only post a few lines or simple picture on twitter, Facebook or email, with Everyplay, your players can post videos of the WHOLE game play, plus the Facecam function mentioned above, how cool is that?

And it's free! You don't have to pay a cent!

Everyplay is definitely an amazing, must-have framework for every iOS game! Highly recommended!