Error
  • Copy failed
  • Copy failed
  • Copy failed
  • Copy failed
  • Copy failed
  • Copy failed
  • Copy failed
  • Copy failed
  • Copy failed
  • Copy failed
  • Copy failed
  • Copy failed
  • Copy failed
  • Copy failed

Blog

23October

Optinvent ORA Augmented Reality Glass

At JOANNEUM REASEARCH we are currently working on an augmented reality game using a Head-Up-Displays. As the availability of Google Glass is very limited at the moment, we were looking for alternatives and found a couple of competitors which could take the competition with Google Glass. Finally we decided for the French company Optinvent working on a Head-Up-Display prototype called ORA (http://optinvent.com/see-through-glasses-ORA) offering good specifications and a rich set of additional hardware like sensors, microphones, speakers etc.

Posted in Blog, Android

05September

The Big Difference Between onPause() and onStop()

The Big Difference Between onPause() and onStop()

Shortly I had some unexpected behaviour while testing the android version of the airTracker. While debugging this issue I realized that there is a big difference between the onStop() and the onPause() method provided by the Activty class.

Posted in Blog, Android

08August

Convert color palate image to NSArray or ArrayList

Convert color palate image to NSArray or ArrayList

To bring a little bit more color into GUI of the airTracker we decided to ink the text color of the text fields depending on the concentration value e.g. if the concentration value is less than 5 than the text should be inked light green, if the concentration is above 30 the text color gets more and more dark orange.

Posted in iOS, Blog, Android

05July

How to access private class members

How to access private class members

It's been a while since my last article. A couple of days ago I needed to access a private class member. After a short google search I found some that helped me perfectly. By using this "workaround" not only private class members can be accessed it also works for private methods. Here is an explanation this can be done can be found here

Posted in Blog, Android

05July

Android Launcher Image Generator

Android Launcher Image Generator

On the Android Asset Studio a couple of really helpful tools can be found among others a launcher pic generator. The only con, it requires Google Chrome to use the launch icon generator.

Posted in Blog, Android

03May

iOS App Icon Generator

iOS App Icon Generator

In the past weeks is was often in need to create and resize icons for iOS apps. As everybody knows this is an annoying job, so I search for a suitable web-tool doing this job for me.

Searching with the keywords "apple icon generator" returns a couple of different pages which I tested site by site, using a test image with a resolution of 1024x1024 and 72 DPI.

Posted in iOS, Blog

23April

How to Integrate iAds and AdMob

How to Integrate iAds and AdMob

Currently I'm working on a new version of the airTracker app, adding some new features, removing a couple of bugs and moreover replacing Apple's iAds by Google's AdMob. Why? iAds does only serve ads to following countries U.S., Canada, Mexico, Australia, New Zealand, U.K., France, Germany, Italy, Spain, and Japan - the list of countries was copied from the iTunes connect help. Unfortunately I have realized that Austria is not delivered with ads after the app was submitted to the App Store. While searching for instructions how to integrate AdMob into my app best, I found a really nice library to handle both ad platforms - iAds and Google's AdMob. The LARSAdController can be integrated and setup really easy. Moreover the library can be configured to use iAds as main ad provider and if iAds can not delivery any ads at the moment then the library uses MobAd as fallback. The perfect solution for my needs! The repository contains an example how to integrate the LARSAdController into the app.

Posted in iOS, Blog

15April

Rotate ViewController from Landscape to Portrait and Vice Versa

Rotate ViewController from Landscape to Portrait and Vice Versa

Sometimes it is necessary to show a UIViewController in both orientations  portrait if e.g. a list view needs shown or landscape if e.g. a diagram needs to be shown. Doing this on Android is quite simple and there are a lot of tutorials how to get this thing done. However on iOS approaches for this problem are barely, neither Apple has documented a solution for this reason.

Today I did some google search concerning this problem and found a really great posting on Vast blog showing a simple to use solution.

Posted in iOS, Blog

13April

Android and Apple Device Frame Generator

Android and Apple Device Frame Generator

Shortly I was looking for a frame generator where I can put in a screenshot from iPhone or iPad and then automatically a screenshot with the device's frame is created.

Something identically has already been existing for Android for a longer time, for iOS I needed to dig a little bit deeper, however after a couple of blog and stackoverflow postings I discovered two nice solutions for Apple and one that is already popular for Android.

The first solution for a Apple frame generator can be found directly on the Apple developer site, however the integration of the screenshot needs to be done with Photoshop. The second solution is straight forward and is not for Apple only, it is a Android frame generator too.

For Android device's only a frame generator can be found on the Android Asset Studio homepage a really nice place for discovering cool tools. A look onto this page is really worth seeing. 


cheers,
Chris

Posted in iOS, Blog, Android

12April

Toast Messages for iOS

Toast Messages for iOS

I have started developing on Android about a year ago and something I really like on Android are these nice and straightforward to use Toast messages. It is a discrete way to inform the user about e.g currently executing tasks, finished tasks or may things that ended up with an error. In contrast to iOS UIAlertView the user does not need to push the OK button to dismiss the dialog, it disappears automatically after a pre-defined duration. 

For the new version v1.1 of the airTracker I was looking for a counterpart of this Android Toast message and within a few minutes of google search I found a couple of nice projects people have already implemented. Some were quite nice however one did fit absolutely my needs. The project can be downloaded from Charles Scalessec's GIT repository and contains the Toast-implementation and an example how to use it. The project is already compatible with ARC by adding the compiler flag "-fno-obj-arc", the minimum requirement for iOS is 4.0.

cheers,
Chris

Posted in iOS, Blog, Android

06April

iOS6 CLLocationManager callbacks not working

iOS6 CLLocationManager callbacks not working

A couple of weeks ago I tested my new app airTracker on my iPhones the first one running on iOS5.1 and the second one running on iOS6.1. During the development process the app was named EnvironmentMonitor and was finally changed to airTracker. On iOS5 iPhone everything worked as expected, however on the iOS6 iPhone I did not get any location updates.
My first assumption was that Apple has deprecated some delegate methods. After a quick look into Apple's CLLocationManager documentation my assumption was confirmed, the delegate method locationManager:didUpdateToLocation:fromLocation: was deprecated and locationManager:didUpdateToLocations delegate method should be used instead.

I had been glad already too early. After implementing the new delegate methods my app still did not receive any location updates. The first conspicuous thing came in my mind was the missing notification that asks if the app is allowed to use the location service. This notification is shown if the app is started the first time. So I checked the iOS privacy settings, however I could not find my app's name there. So I wasted some time with deleting and reinstalling the app, I have also tested the the airTracker app on the iPad also running on iOS6 with the same result - no location updates.

So I tried the last thing that came in my mind, I changed the name from EnvironmentApp to TestApp, installed it on the iOS6 iPhone and surprisingly it worked. I do not know why however renaming solved the problem.

cheers,
Chris

Posted in iOS, Blog

12February

How To Port Boost To iOS

How To Port Boost To iOS

For a new project I had to port the core library component of an existing Android app to iOS. One important part of this core libarary was written in C++ using some methods of the boost library. My first task was checking if boost libaray can even be used on iOS and how much time the integration task will take. Business as usal, I started some web-research and found some nice tutorials how to use boost for iOS quickly. However most of this solutions were not really suitable because the boost library needed to be built for each architecture - x86 for the simulator and armv6, armv7 and armv7s for the different Apple devices. Moreover a lot of configuration in the project the boost libarary needs be integrated in, was necessary. So I countiuned my research and finally found a quite nice article that discribed how to create a framework containing the different boost libararies for each architecture. The framework can be easily used only a few compiler flags need to be set.

UPDATE 06.06.13

If have compiled this boostoniphone repo working for the current xCode 4.6.2 (4H1003) and iOS SDK 6.1 on Mac OS X 10.8.3.

Posted in iOS, Blog

29January

Check Android Application resumed/paused

Check Android Application resumed/paused

Time goes by so fast, I was a little bit surprised to see that my last post was one month ago. So let's go..

Sometimes it is neccessary to get notfied if the application is sent to the background or recoveres back to foreground. As I started developing apps on iOS I was used that there is a central mechanism to check wheter the app is created, destroyed, started, stop etc. However in Android this central functionality is missing. So we need to implement a little workaround by implementing a base class every Activity inherits from.

For those who already use API level 14 or higher, the approach proposed by mjbshaw should be prefered unless follow the example shown in the implementation part below.

Posted in Blog, Android

25December

How to sniff iOS HTTP traffic

How to sniff iOS HTTP traffic

Sometimes it can be really interesting and helpful if there would be a chance to analyze and monitor the traffic of a potential iOS app. Maybe you just want to know what kind of services this app is using, maybe you want to take a closer look behind the scenes e.g. where does the app get its data from.

Posted in iOS, Blog, Android

19December

Could Not Instantiate Class Named 'NSLayoutConstraint'

Could Not Instantiate Class Named 'NSLayoutConstraint'

Last week I have started a new project by using xCode 4.5 in combination with storyboards. I really like the storyboards because they are more intuitive to use than the older XIB files.

Today I tested the my first implmentation on different (real) devices, first with the iPhone 4 running with iOS 5.0.1 using English as system language where everything worked perfectly. After that I tested my project on the iPad3 running with iOS 5.1.1 using German as system language and got an exception I have never read before - "Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named NSLayoutConstraint'". So I used Mr. Google to search for a solution and discovered the solution within a minute. However to remove the exception took a little more time than I had expected...

Posted in iOS, Blog

[12  >>