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

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!

Verizon iPhone Official Announcement

Today we’re partnering with a giant of the industry…and that’s Apple." As Verizon finally and officially announce the partnership between Apple and Verizon for the iPhone.

At a press conference in New York City today, Verizon said it will soon begin selling Apple’s iPhone.

The device will be available on its network starting in early February, COO Lowell McAdam said. It’s the same iPhone 4 that AT&T currently sells except that it connects to the CDMA network instead of GSM.

While Steve Jobs did not join McAdam on stage for the announcement, Apple COO Tim Cook did. He told the gathering of press that Apple is "very excited to bring the iPhone to Verizon’s 93 million customers and new customers who want to use the iPhone 4 on Verizon."

Speculation that a Verizon iPhone announcement was coming today had been rampant following a press invitation from the carrier announcing a "news" event last Friday.

But rumors of such a device have been around for much longer than that. At the event this morning, McAdam said, "If the press writes something long enough and hard enough it comes true."

AT&T had an exclusive contract to carry the iPhone in the U.S. for what was initially reported to be five years, starting in 2007.

McAdam said the journey to bring the iPhone to Verizon began two years ago. In 2008 they talked about bringing an iPhone to the CDMA network and they designed and tested "to make sure it would come up to the standards of Verizon."

Sales are to begin Feb. 10 with pre-orders starting on Feb. 3.

Apple issued its press release at 11:11 a.m. on Jan. 11, 2011, or 1/11/11

Verizon Wireless & Apple Team Up to Deliver iPhone 4 on Verizon

BASKING RIDGE, New Jersey and CUPERTINO, California—January 11, 2011—Verizon Wireless and Apple® today announced that the iPhone® 4 will be available on the Verizon Wireless network beginning on Thursday, February 10. Qualified Verizon Wireless customers will be given the exclusive opportunity to pre-order iPhone 4 online on February 3, ahead of general availability.

iPhone 4 is the most innovative phone in the world, featuring Apple’s stunning Retina™ display, the highest resolution display ever built into a phone resulting in super crisp text, images and video, and FaceTime®, which makes video calling a reality. iPhone 4 on Verizon Wireless will also include new Personal Hotspot capabilities allowing customers to use iPhone 4 to connect up to five Wi-Fi enabled devices.

“We are pleased to introduce millions of wireless users to the industry leading iPhone 4 on the nation’s most reliable network,” said Lowell McAdam, president and chief operating officer of Verizon. “This is an important step for the industry as two great companies join forces to give wireless customers one of the most important technological additions to the mobile landscape this century.”

“Verizon Wireless customers have told us they can’t wait to get their hands on iPhone 4, and we think they are going to love it,” said Tim Cook, Apple’s chief operating officer. “We have enormous respect for the company Verizon has built and the loyalty they have earned from their customers.”

iPhone 4 features a 5 megapixel camera with LED flash, HD video recording, Apple’s A4 chip, a 3-axis gyro and a beautiful glass and stainless steel design like no other mobile phone. iPhone 4 also comes with iOS 4, the world’s most advanced mobile operating system, which includes multitasking, folders, Game Center, AirPlay® and AirPrint wireless printing. iPhone 4 customers have access to the world’s most popular App Store℠ with more than 300,000 apps available in an incredible range of 20 categories, including games, business, news, sports, health and reference.

Pricing & Availability
iPhone 4 will be available on the Verizon Wireless network beginning Thursday, February 10 for a suggested retail price of $199.99 for the 16GB model and $299.99 for the 32GB model with a new two year customer agreement. iPhone 4 will be available at more than 2,000 Verizon Wireless Communications Stores nationwide, online at  www.verizonwireless.com/iphone, at Apple Retail Stores, at the Apple Store® (www.apple.com), at Apple Authorized Resellers, and by calling 1-800-2 JOIN IN.

(EDITOR’S NOTE: Media can access high-resolution images in the Verizon Wireless Multimedia Library at www.verizonwireless.com/multimedia.)

Verizon Wireless operates the nation’s most reliable and largest wireless voice and 3G data network, serving more than 93 million customers. Headquartered in Basking Ridge, N.J., with 79,000 employees nationwide, Verizon Wireless is a joint venture of Verizon Communications (NYSE, NASDAQ: VZ) and Vodafone (LSE, NASDAQ: VOD). For more information, visit www.verizonwireless.com.

Apple designs Macs, the best personal computers in the world, along with OS X, iLife, iWork, and professional software. Apple leads the digital music revolution with its iPods and iTunes online store. Apple is reinventing the mobile phone with its revolutionary iPhone and App Store, and has recently introduced its magical iPad which is defining the future of mobile media and computing devices.

Press Contacts:
Brenda Boyd Raney
Verizon Wireless
brenda.raney@verizonwireless.com
(908) 559-7518

Natalie Kerris
Apple
nat@apple.com
(408) 974-6877

Part 4: Talking to an asmx web service – A .net developer learns objective-c for iPhone iPad

So here i am reading up on how the cocoa touch framework doesn’t have support for working with xml too easily and its not an easy task to undertake in manually parsing a soap xml… when along comes something so amazing i may have wee’d my pants a little.

Behold http://sudzc.com

SudzC is an amazingly helpful website where you simply pass it a url to an asmx or upload a wsdl file, it spits you out a fully fledged example project along with reference documentation and the source code you’ll need to include to make webservice communication as easy as…

image

Important stuff is the:

[service … line and the Completed action (or event in .net speak) it returns. I simply just spat some stuff out to the log to see some results.

What’s is awesome and worth mentioning (again) is what is in ws.iPhone.zip\Source\Examples. From within the zip you get sent from SudzC is the all important examples you need to start cracking (with YOUR webmethods).

SudzC … i think i’m in love!

Part 2: Nappies and training wheels – A .net developer learns objective-c for iPhone iPad

Just going through some early podcast videos from the Cocoa Touch Netcast www.cocoatouchnetcast.com (search cocoatouch netcast in the itunes store).

The first video is good going off the back of the videos mentioned in my last post. The 2nd video ep 2: Slider is also helpful. It clearly explains Class inheritance (a class is your code, classes can be inherited from super classes bringing with it certain functionality), actions and outlets (the way which the UI interacts back and forth with the code) and a good demo of a basic slider control flinging left to right adjusting with it the text in a label of the sliders current position. A good hello world (without the text hello world).

Have a good pause at 11mins into it for a good screen explaining actions and outlets.

[ViewController]
outlet -> points to label
action -> references a slider’s event

So the code in SliderViewController.h would look something like:

#import <UIKit/UIKit.h>
@interface SliderViewController : UIViewController {
UILabel *sliderLabel;
}
@property (nonatomic, retain) IBOutlet UILabel *sliderLabel;
- (IBAction)sliderChanged(id)sender;
@end

And with any .h file there is a matching .m file, SliderViewController.m would look like this:

#import "SliderViewController.h" 
@implementation SliderViewController 
@synthesize sliderLabel; 
-(IBAction)SliderChanged(id)sender { 
UISlider *slider = (UISlider *)sender; 
int progressAsInt = (int)(slider.value + 0.5f); 
NSString *newText = [[NSString alloc] initWithFormat:@"%d", progressAsInt]; 
sliderLabel.text = newText; 
[newText release]; 
} 
-(void)dealloc { 
[sliderLabel release]; 
[super dealloc]; 
}

Armed with limited knowledge (feel free to correct me) I see variables and methods are referenced in the .h file (variables within the {}’s and methods after). Naming a variable (ie sliderLabel) the same as the outlet seems to give you the ability to speak directly with the label on the UI.

You need to call @synthesize to be able to use the sliderLabel variable on the .m file. This I assume from the example is to be called for every variable mentioned in the .h file.

So … time for me to do some damage. Stay tuned, lets see if I can remember to alloc, init and release!

Part 1: Baby steps – A .net developer learns objective-c for iPhone iPad

What is this?
A series of blog posts about a staff member at InteractiveWebs (.net developer since .net went 1.0) taking on the challenge of transitioning to iPhone and iPad development.

Brief context:
Every day we live with "Object not set to an instance of an object" or "modify the web.config" this or "I’m not a xaml designer" that. Hang on a second, if I am frustrated by using Microsoft technology well developing for it is equally frustrating. But if using Apple technology is the equivalent to geek crack, then I wonder if developing for Apple and its devices are an equally enjoyable experience.

Where am I at?
Had a play with Monotouch http://monotouch.net and it seems like a logical step for someone like me. However it did dawn on me that I’m trying to move away from the .net way of life so in a way monotouch seems a bit of a cop out (while I am a big fan of what those guys are doing).
Its been a few days of downloading sdk’s and watching demo videos. Already getting itchy to jump in to some code.

First things first. Bookmark, Favourite and Pin to home screen http://developer.apple.com as this site is amazingly helpful. (You don’t even need to read dreaded …. Whitepapers)!

Here you will find everything from surprisingly helpful documentation, videos and the iPhone OS SDK (this includes once downloaded xcode, xcode is your new visual studio). You will need to create a developer account, no problem it just attaches on to your existing itunes account. Brilliant!

On this page http://developer.apple.com/iphone/index.action click on the "Getting Started Videos". It will open up itunes allowing you to download some great videos to iTunes U. My next steps which were very helpful were to watching the following videos:

  • Introduction to the iPhone SDK
  • Key practices for iPhone Application Development
  • Fundamentals of Cocoa Session from WWDC

That last video I suggest watching very slowly, rewinding as much as you need to letting it all sink in. It was this video where things began making sense.

That’s it for the first post. Next will likely be jumping in to Views and kicking off a traditional "Hello World".

iBooks for the iPhone 4 on iOS4 with the new Apple iPhone 4G

Thanks to www.engadget.com – almost as good as being there!

“iBooks. We are bringing it to the iPhone with the iPhone 4."

"We’ll have it on the iPhone, the iPad, and the iPod touch. What can we do with these together? First, you can purchase and download a book. It will download wirelessly. You can download the same book to all your devices at no extra charge. Buy it on your iPad, download to your iPhone. And iBooks will automatically and wirelessly sync your current place, all your bookmarks, and all your notes." No extra charge? We’ll take it.

 

 

With notes able to be added!

What is iPhone 4 Retina Display?

Thanks to www.engadget.com at WWDC

 

10:36AM "Second one, this is a biggie. Something we call the Retina Display. What’s that? In any display there are pixels. We dramtically increased the pixel density, Four times the amount."

10:37AM "Why is that important? Let’s say we want to draw the letter A — as you can see, we can get far more precision. And we play all sorts of tricks." He’s showing anti aliasing.

10:37AM "Because we have four times as many pixels, we get really, really sharp text. Now the retina display as 326 pixels per inch." Wow.

iPhone 4 Officially Announced at WWDC 2010

Thanks to the www.engadget.com blog.

 

10:34AM "Now because there have been photos around, people have asked ‘what’s this’" The lines!

10:34AM "Bottom, mic, top, headset jack, noise cancellation mic…"

10:33AM "Here are the volume controls… we have a front facing camera, micro SIM tray, camera and LED flash on the back…"

10:33AM "As a matter of fact, it is the thinnest smartphone on the planet."

10:33AM "It is 24% thinner than the iPhone 3GS."

10:33AM "And it’s really thin. This is the new iPhone 4."