1
2
3
4
5
6

Using Custom Unwind Segues with Xamarin.iOS

As you probably know by now, I'm a huge advocate for Xamarin technologies for native iOS and Android apps. After trying to implement some custom unwind segues for an iPad app, I discovered that no-one had documented how to do them using Xamarin.iOS yet, so I wanted to throw something together to hopefully save others time down the road.

I've created a Github repo at the link below which includes two sample projects. One sample project shows custom segues and custom unwind segues within a UINavigationController, and the other sample shows how to do custom segues without a navigation controller. The second sample is largely ported from this article.

Xamarin Custom Segue Samples - Github

I also recorded a 15 minute screencast showing how to do it all, you can find that here:
Xamarin Custom Unwind Segue Screencast - YouTube

Also, folks are frequently curious what C# code written in Xamarin.iOS looks like as compared to Objective-C, so below are two custom segues - the first in Obj-C (from the source link above), and the ported C# that does the same thing:

Objective-C:

@implementation CustomUnwindSegue
 
- (void)perform {
    UIViewController *sourceViewController = self.sourceViewController;
    UIViewController *destinationViewController = self.destinationViewController;
 
    // Add view to super view temporarily
    [sourceViewController.view.superview insertSubview:destinationViewController.view atIndex:0];
 
    [UIView animateWithDuration:0.5
            delay:0.0
            options:UIViewAnimationOptionCurveEaseInOut
            animations:^{
                // Shrink!
                sourceViewController.view.transform = CGAffineTransformMakeScale(0.05, 0.05);
                sourceViewController.view.center = self.targetPoint;
            }
            completion:^(BOOL finished){
                [destinationViewController.view removeFromSuperview]; // remove from temp super view
                [sourceViewController dismissViewControllerAnimated:NO completion:NULL]; // dismiss VC
            }];
}
 
@end

C#:

public override void Perform()
{
    // Add view to super view temporarily
    SourceViewController.View.Superview.InsertSubview(DestinationViewController.View, 0);

    UIView.Animate(0.5f, 0.0f, UIViewAnimationOptions.CurveEaseInOut, 
        () => {
            SourceViewController.View.Transform = CGAffineTransform.MakeScale(0.05f, 0.05f);
            SourceViewController.View.Center = this.TargetPoint;
        },
        () => {
            DestinationViewController.View.RemoveFromSuperview();
            SourceViewController.DismissViewController(false, null);                    
        });
}

Matchingo Now Available on Windows Phone and Kindle Fire

Matchingo running on a Nokia WP8 device

I am super excited to say that Matchingo is now available in all major mobile app stores including the Windows Phone Store and the Amazon App Store! With these latest two releases, Matchingo now spans a majority of phone and tablet devices in use today. As best I can tell, Matchingo is the first memory matching game to accomplish this feat!

It's hard to believe that it's been nearly 5 years since I originally created Matchingo using Silverlight. This new reincarnation of Matchingo benefits from the awesome Unity engine, but still leverages some of that same C# code written way back then.

Please go grab Matchingo now at Matchingo.com and leave a nice review - I'd really appreciate it!

Matchingo Launches on iOS and Android


Matchingo - Get it Now!

I'm super excited to announce that Matchingo is live on the iTunes App Store and Google Play! Support for Windows Phone and Kindle Fire is expected in the coming weeks as well (sign up for email notifications at Matchingo.com).

Get it now:
iTunes App Store (iPhone / iPad)
Google Play (Android)

This is the first game I've ever built using Unity. It was quite a challenge over the last ~18 months learning such a powerful tool, and I still have a lot to learn, but I am so excited to keep going from here. I hope you like Matchingo, and please leave a review!

Cross Platform Matchingo Reboot Incoming

I'm excited to announce that Matchingo is getting a much deserved reboot. Matchingo was a game I released on the web and Windows Phone using Silverlight way back in 2009/2010. It has now been reborn in full 3D glory using Unity - a game engine that supports C# scripting and powers some of the best mobile games today. It will start rolling out next week on iOS and Android with Windows Phone and Kindle Fire support rolling out shortly after.

Matchingo gameplay on iPad

Matchingo is able to be played by kids as young as 2, and is fun for all ages. It takes the simplest game concept (a matching game) and turns it into an exciting arcade style casual game with combo multipliers, gold coins, and lots of explosions. This represents a significant amount of work in trying to learn Unity over the last 12-18 months - I hope you will help me spread the word!

Please visit Matchingo.com to sign up for email notifications so you know when it is available for your phone and tablet devices, and like the Matchingo Facebook page to find out more about the upcoming launch of Matchingo!

Word Search Little Books Lands on Windows Phone

I am super excited to announce that Word Search Little Books is now available on the Windows Phone Store!

That means that WSLB is now on essentially every major platform, something I'm super proud of. The only platforms WSLB has yet to reach are the Nook and Blackberry, something I don't see doing anytime soon - time to move on to the next game!

If you have a Windows Phone or know someone who does (or any platform for that matter) please point them to WordSearchLittleBooks.com to get the app now, or have them use this fancy button:

For those curious, here is how the app's codebase breaks down:
Android - Java / XML
iPhone/iPad - C# / XIB / Xamarin.iOS
Windows 8, Windows Phone - C# / XAML

I have seriously considered refactoring the Android version into Xamarin.Android so I can have C# across all the platforms, but I'm just going to leave it as is for now. WSLB was originally made as part of an Android contest, hence it originally being done in Java.

Deck from 'Practical Mobile UI / UX for Developers' Talk at the Atlanta Mobile Developers Meetup

I was lucky enough to get to present at the Atlanta Mobile Developers Group earlier this week where I talked about sketching, wireframing, and other user experience and design subjects relative to turning your mobile app idea into a fleshed out app ready to be developed. I've uploaded this slide deck to SpeakerDeck.com, you can find it here or via the image below.

Thanks to everyone who sent in kind words or stayed after to talk. If you're looking for help with the strategy of your mobile app, or help turning your mobile app idea into a reality, check out my mobile app development company All Mobile Everything.

Slides from 'Monetizing Mobile Games' Talk at the Atlanta Code Camp 2013

I had a great time this weekend at the Atlanta Code Camp where I had the opportunity to give a talk on Monetizing Mobile Games. I've just uploaded this slide deck to SpeakerDeck.com, you can find it here.

Thanks to everyone who came out and chatted afterwards. Building up an app network is a lot easier when you know other folks also trying to get started in mobile games - so stay in touch!

The Official Launch of Line Diet for iPhone

Announcing Line Diet for iPhone - huzzah! Find out all the details at LineDietApp.com. Below is some background on the project for those interested in those sorts of things..

It's always exciting to get to announce a new product. This one was a fun one that was born out of a personal desire for an app. My buddy @thinky told me about something called a "Line Diet" several years ago. It's also known as the bang bang diet, the Steve Ward diet, or Bang-Bang Servo Diet. You can find a few articles on the web about it, but the simplest summary is something like this:

  • Set a goal weight and date
  • Graph a line from your starting weight to the goal date/weight
  • Weigh in daily to see if you're on target (the line)
  • If you're under the line then eat normal, if you're over the line then diet/exercise harder to catch up

Ever since Zach brought it up to me I've been interested in the concept. It's a crazy simple scientific approach to dieting that makes your dieting as simple as a yes and no (or a 1 and 0). You're either on a diet that day, or your not - and it depends on if you are staying on your target line. It solves the issue with folks getting burned out on diets because you can get ahead of your goal and then enjoy yourself on the weekend for example - so long as you are staying on track with your longer term weight loss goals.

(hit 'read more' below..)

Vote for My Codestock 2013 Mobile Talks!

If you live in the Southeast and are a coder (or interested in being one) then hopefully you already know about Codestock hosted annually in Knoxville, TN. Codestock is awesome because it has been community driven from the start, so it isn't tied to any specific development stack. You'll find everything code related from web to mobile to desktop across a plethora of coding languages and technologies being discussed as well as a lot of surrounding topics like GTD, careers, etc.

I have submitted two talks to Codestock this year - both are mobile related (surprise!). I spoke at Codestock a few years ago, and after looking through all of their submitted sessions I realized that Codestock is going to be much more massive this year than ever, and I have little to no chance of my sessions being selected without your help!

So, here are my two proposed talks - sign up to go to Codestock, and vote for my sessions pretty please!
Getting Started with iOS Development with MonoTouch
Mobile Game Monetization and Promotion Strategies

Hope to see you at Codestock 2013 this year!

FOLLOW UP:
I had a great time at Codestock this year presenting on Xamarin.iOS. Thanks to everyone that voted for my talk!

You can check out the slide deck of the Codestock 2013 presentation on Slideshare here:
Getting Started With Xamarin.iOS

All Mobile Everything Podcast Coming Soon

This is just an early heads up that I'll be launching a new mobile-centric podcast later next week called the All Mobile Everything Podcast. The podcast will be hosted on the All Mobile Everything site starting the third week of April. I'll be releasing the podcast every 2-4 weeks, and will be covering a lot of topics relative to mobile strategy and mobile development.

Until then, I am headed out to the Xamarin Evolve conference in Austin, TX. You can expect some coverage of that event in next week's [the] first episode of the All Mobile Everything podcast. Stay tuned!

Update: I've been second guessing starting this podcast until after I release my next app. Please check back again in the coming weeks or let me know on Twitter what you think.

CodingTags: