iOS

The Apple Developers Union

The Apple Developers Union

Recently a new group of App store developers has banded together to help push the cause of making the Apple App Store a little more developer friendly for people trying to make a living as Developers of applications for Mac’s and iPhones.

The website is called The Developers Union and has some listed goals and targets. Their about page states 

We believe that people who create great software should be able to make a living doing it. So we created The Developers Union to advocate for sustainability in the App Store.

Today, we are asking Apple to publicly commit — by the tenth anniversary of the App Store this July — to allowing free trials for all apps in the App Stores before July 2019. After that, we'll start advocating for a more reasonable revenue cut and other community-driven, developer-friendly changes.

Here is why we joined.

1. The stated goal of offering free trials is something what has reared it’s head for the looming release of our next app. “NOTAM Reader”. The model we wish to operate under is not currently available where we can offer a free trial. So their first stated goal is something we are defiantly onboard with and hope they can influence Apple.

2. The possibility of reducing the 70/30% split that developers share with Apple is something we also support. Apple the entire ecosystem and for that we are always grateful of the opportunity to develop on such a popular and solid ecosystem. BUT. They are so hugely successful throughout the entire process that it is hard not to feel that the wealth distribution is a little out of kilter. This is not something we are militant about but certainly a review of this policy is something we feel is worthy of banding tougher. 

In the future we will review the groups stated goals and only remain part of the group while the stated goals are not self destructive and the process remains respectful for everyone involved.

LH Pilot – 9.2.02

Update 9.2.02

Improved

- We have found and improved some of the Decode Weather code that struggled with certain specific locations that publish non standard METAR and TAF data.

Added

- New pattern recognition code that better handles non standard WX information for decode.

- Added Variable Winds Decode.

- Variable Visibility Decode.

- Recent SX WX Decode

- Sea Status in WX Decode

Notes

As it turns out, the decoding of weather world wide is rather complex. It is surprising just how many countries have their own format and data sets. Russia with Runway snow and braking information, temperate in different units, QNH, auto machine forecasts to name a few. We hop that any inaccuracies are reported via the feedback within the app, and screen shots.

LH Pilot – 9.2.01

Update 9.2.01

Improved

- Improved the retrieval of Weather TAF and TTF in multi thread and multi station simultaneous download.

Added

- This release includes decode information for TTF METAR and TAF data on a worldwide scale.

Notes

As it turns out, the decoding of weather world wide is rather complex. It is surprising just how many countries have their own format and data sets. Russia with Runway snow and braking information, temperate in different units, QNH, auto machine forecasts to name a few. We hop that any inaccuracies are reported via the feedback within the app, and screen shots.

 

Apple iOS5 Cards App Asking Please Enter Your CVV

image

Apple has released the iOS 5 and new Apple App Cards.

image

The Cards App is an exciting and easy way to send a card to someone anywhere in the world.

One thing that did surprise me was the App asked me to: Please Enter Your CVV

This is asking you to enter the Credit Card CVV number:

image

Either 3 or 4 digit number depending if you have an AMEX card or not.

Why I was surprised  was that apple usually make things incredibly easy to follow, but in this case I suspect that not everyone would know that the number on the back of your card are called CVV Numbers (Card Verification Value). Hence this post.

What to do?

Easy… if asked for the CVV number while using the Cards App. Just enter the number as you previously provided with the credit card on file with your iTunes account. That is all there is to do.

Why Do They Ask?

This is just anther way to verify that you are indeed you. It is a low level security check that the person who put the card on file is using the App.

Aviation Airline News App for iPad / iPhone / Touch

Icon@2x

Aviation Airline News App launch.

We are pleased this week to announce the release of our latest iPhone / iPad / Touch App. The Aviation Airline News App.

The app is a super covenant way to keep track of news and updates about a range of Airlines and Airline industry news, including:

  • Airbus
  • Boeing
  • IATA
  • ICAO
  • Qantas Airways
  • British Airways
  • Virgin Australia
  • United Airlines
  • Cathay Pacific
  • Singapore Airlines
  • Delta Airlines
  • United Airlines
  • Southwest Airlines
  • American Airlines
  • Lufthansa
  • Ryanair
  • US Airways
  • Emirates
  • Continental Airlines

If you are involved in the industry or just interested in what is going on, then this app is a great way to stay updated.

See it on the App Store: http://itunes.apple.com/app/aviation-airline-news/id462360506?mt=8

Screen Shot 2011-09-02 at 7.01.53 AMScreen Shot 2011-09-02 at 7.01.29 AMScreen Shot 2011-09-02 at 7.01.45 AM

Screen Shot 2011-09-02 at 7.04.23 AMScreen Shot 2011-09-02 at 7.04.32 AMScreen Shot 2011-09-02 at 7.05.02 AMScreen Shot 2011-09-02 at 7.05.11 AM

DotNetNuke iPhone iPad App Launched

If you like DotNetNuke and have an iPhone or iPad, then DotNetNuke - DNN News App if for you!

InteractiveWebs have released a DNN community specific App to help interested people say in touch with the latest goings on in the DotNetNuke world.

image

http://itunes.apple.com/au/app/dnn-news-dotnetnuke-news/id448890925?mt=8#

Now you can browse the latest news, modules and skin information about the popular DotNetNuke CMS system all from your mobile device.

iPhone Screenshot 1iPhone Screenshot 5

iPad Screenshot 1

The App is a native Xcode universal app (meaning it works on both the iPad and iPhone natively.

It is designed to tap into community news and information and discussions around DotNetNuke to allow you to read stay up to date with the latest news and events.

iWebs News–Now available on the iPhone and iPad

imageToday marks a big day for us at InteractiveWebs. We have had approved and released our version 2.0 update to our popular iPhone app “iWebs News”.

What’s New

The App has been totally rewritten by us, and now is released as a native Xcode iPad & iPhone app in one.

So if you have an iPad, and have previously seen our iWebs News app, then please check out the app on your iPad. It is a terrific experience.

Why is it a Big Deal for us?

Much of our focus over the last 8 months has been on enabling our team to produce rapid iPhone and iPad apps. In order to do this, we felt it necessary to develop a framework that we have called “Mushroom”.

The release of this 2.0 update for iWebs News App marks the first release of any App by us that is built entirely on our new Mushroom Framework.

Naturally we are pleased that apple process approved the app first time around, as this means that all the hard work in testing and resolving any issues paid off.

What does it mean for us?

Actually it means quite a bit! Now we have the rapid deployment framework, that is a “Universal App” running on both iPhone and iPad, we are able to use and deploy the app on behalf of our customers and clients.

Because all of the code is ours, we can take the future development in any direction we like. We are really very excited to see the result, and see how well it performs.

imageimage

Would you like your own iPhone / iPad App?

If you like what you see, and are interested in having your own business with an App like this, then please contact us to discuss your needs.

Using a Hex (html) color code as a UIColor

hash keyWe had a requirement to read from a plist a hex color code eg. #168240 and translate that to update a navigation controller’s navigation bar background color.

Below are two ways that were presented.

 

First (not the best) was this method using a macro, but this wasn’t obvious to us how to use it with an NSString value for the color code (we couldn’t hard code it).

//RGB color macro
#define UIColorFromRGB(rgbValue) [UIColor \
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

and then use in code like this:

tintColor = UIColorFromRGB(0x168240);

 

Second (preferred) was to create a method that returns a UIColor with parameters allowing for an NSString to be passed.

-(UIColor *) colorForHex:(NSString *)hexColor {
hexColor = [[hexColor stringByTrimmingCharactersInSet:
[NSCharacterSetwhitespaceAndNewlineCharacterSet]
                 ] uppercaseString]; 
   
    // String should be 6 or 7 characters if it includes '#' 
    if ([hexColor length] < 6)
return [UIColorblackColor]; 
   
    // strip # if it appears 
    if ([hexColor hasPrefix:@"#"])
hexColor = [hexColor substringFromIndex:1]; 
   
    // if the value isn't 6 characters at this point return
    // the color black
    if ([hexColor length] != 6)
return [UIColorblackColor]; 
   
    // Separate into r, g, b substrings 
    NSRange range; 
    range.location = 0; 
    range.length = 2;
   
    NSString *rString = [hexColor substringWithRange:range]; 
   
    range.location = 2; 
    NSString *gString = [hexColor substringWithRange:range]; 
   
    range.location = 4; 
    NSString *bString = [hexColor substringWithRange:range]; 
   
    // Scan values 
    unsignedint r, g, b; 
    [[NSScannerscannerWithString:rString] scanHexInt:&r]; 
    [[NSScannerscannerWithString:gString] scanHexInt:&g]; 
    [[NSScannerscannerWithString:bString] scanHexInt:&b]; 
   
    return [UIColorcolorWithRed:((float) r / 255.0f) 
                           green:((float) g / 255.0f) 
                            blue:((float) b / 255.0f) 
                           alpha:1.0f]; 
   
}

And access it like this:

tintColor = [self colorForHex:@"#168240"];

Alternatives to SVN Subversion for xCode Development

imageDo you need SVN or is there another way to manage code?

We use and manage an SVN server dedicated to our xCode development, but mostly because we can, not because we need to. We have the servers, knowledge and experience to do this so we did.

I thought I would suggest another way to share code among multiple developers, and still keep thorough backups of all the things you need.

There are a few exceptions and we will list them first.

1. Technically SVN allows for two people to work on the same code at the same time, and for those changes to be mashed together. Sort of. However this is not really the case. SVN does such a lame job of mashing when compared to some TFS systems we have used for years, that we would advise strongly against thinking it will solve this problem.

For this reason, we treat SVN as a single user project for modifications, but that all users can update their local copy of the code any time, and test locally.

2. SVN encourages you to keep the server repository separate and Update or download a local version for working. “A working copy”, that you can then update back to the server when ready for check in. The process works well, and forces some dev discipline.


The suggested alternative to SVN with xCode working remotely for developers

What you need:

Skype, DropBox, Time Capsule

image imageimage

1. Create a DropBox account and share access to this for your developers. If you all use the same account, you can probably do this for free.

Drop Box will cache a folder to the cloud, and share that back to all users with the same account. Great service that just works!


2. Skype lets you talk to your other developers. Not really necessary, but a lever of communication is needed to ensure that you are not on the same project at the same time. This is nothing new to SVN that suffers the same problem and requires the same communication.


3. Time Capsule – This is to perform backups that are easy to revert to any point in time. We suggest that each developer has their own Time Capsule

Here is how it works

 

  1. Setup a Working folder for xCode, with a sub folder by developer name. Eg xCode Working /My Name. Setup a folder for each developer. We will call this the working folder.
  2. Setup a folder system / single folder and one sub folder for all your xCode projects. E.G. xCode Dev  with sub folders /Project1  etc
  3. Setup a different folder and sub folders for supporting files. Original images, notes etc that relate to the same projects.
  4. Make sure that Drop Box is syncing these folders and all sub folders.
  5. Drop your projects into the related xCode project folders and sync to the cloud.
  6. When it is time to work. Clear your working folder of all files.
  7. Grab a copy of your xCode files from the project folder, and drop it into your working folder.  Inform others that you have the folder checked our, by changed the folder name to: “/project1 – checked out to me” Work away.
  8. If you are online, drop box will be syncing everything you do. No problem as the xCode changes are usually small. Either online or off. Not really a big deal.
  9. When you are ready to submit your changes back to the “Server” just copy all files back to the folder that you changed to – “checked out to me”. And rename it back to it’s original name.
  10. Sync to dropbox, or let is be syncing all the time is even better.
  11. Make sure that your time capsule is backing up periodically.

Rules

1. The more connected and syncing to drop box the better.

2. Don’t work on code that is marked as check out to others, but you can grab a copy from any time and look / play with it in your working directory. You can even copy from someone’s working directory to yours.

3. Don’t check in over others checked out projects.

4. Be disciplined about notes and image originals into the correct notes folder.

That’s is. You own automates SVN in the cloud.

Disaster / Backup restore.

Easy. When you find a problem, you can use your time capsule to go back to any point in time for any project for any user directly from your time capsule. Any other team member with a time capsule can do the same.

The benefits are huge.

1. It actually gives you more protection and backup and SVN.

2. You all automatically have the latest code shared via Drop Box.

3. It costs almost nothing.

4. You have total control.

5. It works well.

xCode 4 and SVN subversion server IP address change

imageRecently we needed to change IP addresses on our SVN subversion server. We have blogged before about the SVN xCode Tips here.

What we did now though was to change the IP address of the SVN subversion server after we had already configured the connection to the server on our Mac computers.

The change process was surprising to us, and here is why.

1. We fully expected to have to much around with the entire connection thing. We were ready to refer to our above blog and re-establish connections.

2. When we fist established the new IP, and verified that it had propagated to the updated DNS listings etc, we found that xCode did not connect.

By chance we were short of time. So we rebooted the computers, and tried again. Still verifying that the IP resolved correctly etc. No joy!

With time constraints that day, we put it down and came back it it a day later.

It worked!


We effectively did nothing, and it just worked!

The strange thing was that the expiry and update of the original IP had passed when we first tested. So it should have worked first time.

We can only guess that for some reason the time between updates of the IP stored by xCode, must be longer than the TTL record of the DNS server (or something). In any case, just cool your heels for some time, and wait to see what happens.

Apple or Android app development

It’s funny, that when we tell people we are now developing Apps for the iPhone and iPad, we get a response… “What about Android” They have a bigger market than Apple.

While technically the Android is gaining ground fast, it would appear that owners of Android products don’t actually use them!

Here is an extract of some data from Google Analytics about the use of iPhone, iPad and Android devices. on 15 March 2011.

image

Notice that there is one category for Android devices. If you lump the iPhone and iPad devices into one, you get a massive    1345 vs 153.  or a whopping 11% for Android. Now if you were us and developing for a market. Would you go for the 11% market that Android has?

So Android lovers, either get on your mobile devices and browse / buy like crazy, or accept that fact that your device is less used in the real world than you would like!

xcode 4 with subversion SVN server–Tips

[gard] As newly anointed Xcode developers, and now with the release of Xcode 4. We found our team working on trying to get connected to a new subversion (svn) server at the same time we were trying to discover some new features of Xcode 4. Talk about challenging. Actually this was the first time with anything Apple we have not had a great experience. Loads of talk etc on the net about what a pain in the bum it all is. For those who don’t know. Subversion is a code storage system that allows check in / check out of developer Xcode to a server. There are services online that you can pay monthly to for the use of a SVN server. We wanted to host it on one of our own servers. The setup was not easy and required the setup of a new Linux server, then the setup of the SVN code to turn it into an SVN server. What became confusing was when we needed to get Xcode to talk to the darn thing. Here is the important things you need to know.

First Contact

Just like the movie from when I was a kid, “First encounter”  is a big deal! Big enough to heap your mashed potato into a big mountain! 1. Open Xcode and select Window / Organiser. 2. Select Repositories 3. Bottom left, click the + 4. Add the details of the SVN server. Like this: svn://www.servername.com/directory (this should be the details for your SVN Server). 5. Where asked for Trunk Branches and Tags (leave empty for now).   Now we nee to use the “Terminal” program to make a connection to SVN. 1. Create a test.txt file with some simple message in it. Save it in your documents folder on your mac. 2. Open Terminal 3. Type “svn import /Users/yourname/Documnets/test.txt svn://www.servername.com/directory -m “initial import” --username yourname Note: the path “/Users/yourname/Documnets/test.txt” should be a path to any single dummy test.txt file. The idea is that we are uploading a single file to establish a connection. The: svn://www.servername.com/directory is the path to your SVN server “initial import” is only a tag line. Not needed --username yourname = This is your SVN user name. Ensure you use a double dash --username. EG: our code looks like this: svn import /Users/spascoe/Documents/Temp/test.txt  svn://www.interactivewebs.com/interactivewebs -m "test import" 4. You will be prompted with your existing user for your user password. At this point, if your mac user name does not match the configured SVN user name. Just hit enter. It will then prompt of a user. Type the new SVN user name, then enter. Then the configured SVN pass and enter. 5. You will likely see something that says. “svn://www.servername.com/directory already exists” – Ignore that! 6. Close Xcode 7. Open Xcode again and return to the Optimizer / Repositories and with luck, your server will list on the left hand side, and show the ROOT and any folders on the SVN server. 8. Click back on the server name in the left hand column. 9. Type in the names of the Trunk Branches and Tags folders. We chose to use these names to make it easy. They need to be setup on the SVN server by the administrator. They ARE case sensitive. 10. The text.txt file can be deleted from the server through Xcode if desired. 11. Close the terminal session.

Thoughts

Sometimes not all views refresh correctly. We suggest closing Xcode and opening it again to get things visible that you know should be there. If you need to change user names, and or passwords. Then you will need to enter the terminal again and upload something using the method above. We don’t understand exactly why, but it appears that Xcode will remember the authentication of the terminal session, and caches the authentication properties some place. Without the terminal session upload, you will never get it working!