No! back up for review… Minimally improved.   No! back up for review… Minimally improved.

So Apple didn’t like my 9 yr old’s idea.  So they asked us to make it “more useful”.  So we decided, to have it record your question, and it will simply reply your question back to you and follow it up with a no statement.

Let’s see how incremental we can go.

Technorati Tags: appstore, development, iphone, iPhone Apps, iPhone source objective-c, No! for iPhone


Delegates are mah mah mah (adult Peanut character sound)   Delegates are mah mah mah (adult Peanut character sound)

When I started objective-c, coming from VB.net and C#, I couldn’t wrap my pea brain around delegates based on the information I found.

Wikipedia says:

In software engineering, the delegation pattern is a design pattern in object-oriented programming where an object, instead of performing one of its stated tasks, delegates that task to an associated helper object. There is an Inversion of Responsibility in which a helper object, known as a delegate, is given the responsibility to execute a task for the delegator. The delegation pattern is one of the fundamental abstraction patterns that underlie other software patterns such as composition (also referred to as aggregation), mixins and aspects.

YAWN. Could they make that description more verbose and boring?? Geez. No wonder people run screaming from development. It’s like a secret society of making things SO utterly boring and overly complex they chase away otherwise capable people.

Here is my own definition.

Erick says:

A delegate is when you give one class another class’ events.

Makes more sense to me.

So as an example; in iOS development, you want to have a UIViewController and you give it a UIActionSheetDelegate to it. You are just saying: “Hey, even though this guy is just a view, I want it to also have respond to UIAlert stuff.”

In your .h file, you tell it “I want this guy to respond to UIAction stuff…”

@interface MyHotViewController : UIViewController {
}

And in the .m file, you can put in the UIActionsheets event without XCode having an absolute conniption…
m.
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if(buttonIndex==0){
//do your sweet action here
}
}

At least that’s how I understand it. Educate me if I’ve made this too simple.


My In-App Purchasing War Story   My In-App Purchasing War Story

Note: I haven’t actually had any of my apps approved in the AppStore that has In-App purchasing built in but I do have a couple in development. I do have 60+ apps in the appstore though.

Firstly, I’m the type of person in the development world who likes to jump into the water before dipping my toe in. It’s a crude method of self training but it’s served me well. I freely admit I don’t have formal training in the theories of memory management or agile development. I just like to code and see my work out there. If I get trashed for it, then by all means, call me out and educate me… I may learn something new which is my goal.

In-App purchasing sucks to develop for. I thought Push notifications was crappy but then I wanted to throw this feature into an app and boy oh boy does Apple suck at getting logical tutorials out there for the layperson (lay-developer?) like myself.

First, ground rules to getting In-App purchasing to work, at least in a test world.

-No jailbreak on your test device.
I know, I know…I hate that too but it’s 100% necessary.  I like to have sbSettings and tether working for me too but if you want to have a working test device for in-app purchasing, suck it up, buttercup.

-Full bundle id for your app.
None of that mamby-pamby wildcard bundles like com.company.*  Needs to be com.company.super-hella-sweet-app-yo

-Your product IDs in iTunes Connect In-App area can be the full bundle id or not.
I see a bunch of tutorials saying “you HAVE to have the full bundle id, com.company.super-hella-sweet-app-yo.product1″  but i have found that it’s up to you.  It can be anything. Short, long, medium.  It’s hooked to your app’s bundle Id anyways so it doesn’t matter (at least in my testing).

-Log out of your iTunes on your phone.
Settings > Store > scroll to the bottom > Touch your UserID and then hit “Sign Out”

-Find a good wrapper for StoreKit.
I found MKStoreKit.

-Think ahead.
When you are writing something that will use In-App purchasing, you REALLY need to have a good plan on how you want to implement.  How to restore purchases if they have already bought something but reinstalled the app.  How to disable something if they haven’t purchased, NSDefaults for example.

Now the first thing I wanted to do was to create a view that would show purchasable items.  Doing this does two things.  First, shows a list of items a person can buy and two, validate a purchase is available from the technical side.  If you show a view of products you get from the store and it’s blank, hard coding the buy won’t work either so there’s really no sense in trying it.

Plus, it allows for you to administrate the available products from iTunes connect rather than doing a version update with different hard coded products.  And its REALLY hacky… coming from me, that’s saying a lot.

To follow a nice tutorial based on MKStorekit, go here.  He gives you all the basics walk-throughs that I’m too lazy to give you.


What hacks hate to see   What hacks hate to see

Nobody likes to wake up to this.

Worst thing to see

Technorati Tags: apple, appstore, development, iphone


Free source code!   Free source code!

Everyone loves free stuff. So here’s my contribution…


- (void)viewDidLoad
{
[super viewDidLoad];
}

I don’t have this on github yet but you can use it free of charge. Just put my credit in your code.

Enjoy!

Technorati Tags: iPhone source objective-c


Advanced iOS Networking   Advanced iOS Networking

I’m sort of a hack in terms of iOS development (ok…any development) but I am dangerous enough.  In fact, im dangerous enough to make a very poorly written app using terrible libraries or my own leaky memory management.

Well, Magunth Kumar has made a very nice networking library that handles a whole bunch of nifty helpers and features that will increase speed of your application and your development.

Notable features:
Caching – Will automagically cache your requests.  All behind the scenes.
Authentication – Basic, digest or some custom method is there.  Really easy to use too.
Freezable – You can mark something “freezable” which will put your operations on ice until you have a network connection again.

Check it out

Pretty cool stuff.  Might put it in iSoccer Live to speed up things and remove that UGLY caching code I’m currently using.

Technorati Tags: iphone, network, objective-c


No! rejected by Apple. 9 yr old girl crushed and her dreams of future apple development destroyed.   No! rejected by Apple.  9 yr old girl crushed and her dreams of future apple development destroyed.

So apple took the candy from my baby. My 9 yr old came up with a cute little idea she got from walking through a toy store. It is a simple little toy app that has a big red NO button and when you press it, says “No” in random ways. Actually, MORE useful than that toy as it had only one way to say no.

Anyways, after we worked together on design and implementation, we released for Apple’s review. Her anticipation was building each day as she kept asking if Apple has approved it.

Her excitement was due to her mother and I’s little lesson on revenue streams and percentages. Showing her Apple takes 30%, I get the 70% and then after than, she would see a percentage based on sales. She dreamed of caviar and hedgehogs (she loves hedgehogs).

Well, Apple dropped a turd in the punch bowl on the 3rd day in review (speedy for Apple standards) and I had to read my little girl that rejection letter by email. Telling her that her app was pointless and didn’t live up to the “standards” of the Apple AsppStore. Such glorious Apple approved apps like “Fart Sounds” or anything on this list.

Good Job Apple! You crushed my daughter.

Technorati Tags: featured


No! for iPhone up for review.   No! for iPhone up for review.

Ok, this is a special app.  Lauren, my daughter wanted to make some side cash so I agreed to help her in making an app for the iPhone.  I told her to think of an idea and we would work together to make it.

She came up with No!

This is a simple app that will randomly say no in different ways. Lauren will get a certain portion of the proceeds.  This will teach her a little about being a business person.  Help her out when this get approved by Apple!

No! Screenshot

Technorati Tags: iPhone Apps, No! for iPhone


Elastic Ventures Soundboard apps updated   Elastic Ventures Soundboard apps updated

In partnership with Elastic Ventures, EJSmithWeb has worked hard to update all of their apps (60 total) to work in iOS 5 as well sport a more functional and common UI across them all.

It’s also important to note that a cross app marketing strategy is implemented to maximize the visibility of each app to another.


iSoccer Live updated to 1.0.5   iSoccer Live updated to 1.0.5

iSoccer LiveA poorly coded library was at fault for the crashes for 4.3.5 iOS users. This new update should fix those having the issue.

 

 

iSoccer is a football / soccer news and scores iPhone app complete with live fixtures that allows for you to set up your favorite teams and get updated push notifications when the match a favorite team is playing in has a score change.

United States – Major League Soccer
•England Premier League
•England Championship
•England League One
•Italy Serie A
•Italy Serie B
•Germany Bundesliga
•Germany Bundesliga II
•Spain Primera Division
•Spain Liga BBVA
•France Ligue 1
•France Ligue 2
•Argentina Primera Division
•Australia A-League
•Austria Bundesliga
•Brazil Serie A
•Belgium Jupiler League
•Chile Primera Division
•Colombia Primera Division
•Denmark Superligaen
•Ecuador Primera A
•Greece Super League
•Japan J-League
•Mexico Primera Division
•Netherlands Eredivisie
•Norway Tippeligaen
•Portugal Liga Sagres
•Russia Prem League
•Scotland Prem League
•Sweden Allsvenskan
•Switzerland Super League
•Turkey Super Lig

International Competitions:
•International Friendlies
•Euro 2012
•World Cup Qualifying
•UEFA Champions League
•UEFA Europa Cup
•CONCACAF Champions League
•CONCACAF Gold Cup

Technorati Tags: football, isoccer, Soccer


Page optimized by WP Minify WordPress Plugin