Purplelilgirl Makes Games
Mini Tutorial: How to post score of your Unity iOS game to Facebook?

-without shelling out $65 ;)

Well, if you have $65 to spare, just check out Prime31’s Social Networking plugin (you can even get Twitter!).

Link: http://www.prime31.com/unity/

If you don’t, like 1-broke-girl/me, read on…

There are two parts to this, Unity side and Xcode side. We must find a way for Unity and Xcode to be friends and talk to one another, you know call each others’ functions, access each others’ variables etc.

First let’s take advantage of NSUserDefaults and PlayerPrefs to save some variables (you may encrypt the score variable if you are afraid of cheaters).

PlayerPrefs in Unity…

PlayerPrefs.SetString(“score”, score.ToString());

… can be read in Xcode using…

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *score = [defaults objectForKey:@”score”];

There, we know how to pass variables, what about functions…?

In order to do that, I read this tut, which is in Simplified Chinese!  (http://xys289187120.blog.51cto.com/3361352/705415). The gist of that tutorial is that you create this other class (let’s just call it Facebook.cs):

using UnityEngine;  
using System.Runtime.InteropServices;  

public class Facebook : MonoBehaviour {

    [DllImport(“__Internal”)]  
     private static extern void _PressButton0 ();  

     public static void ActivateButton0 ()  
     {  if (Application.platform != RuntimePlatform.OSXEditor)   
        {   _PressButton0 ();  
        }  
     }  
}

The _PressButton0() will actually call some code in Xcode (we’ll get to that).

Someone else in Unity has to call ActivateButton0, a GUI button, perhaps?

if(GUI.Button(new Rect(0, 0, 130, 235), “Facebook”))
{       Facebook.ActivateButton0();
}

So when the player clicks on the GUI button, ActivateButton0() will be called which will in turn call _PressButton0().

But where’s _PressButton0()?

We create a ViewController class in Xcode (let’s just call it MyView.m):

#import “MyView.h”
#import “AppController.h”

@implementation MyView

void _PressButton0()  
{   AppController *appController = (AppController*)[[UIApplication sharedApplication] delegate];

    [appController feedDialogButtonClicked];
}  

@end

So there’s _PressButton0()!

Now let’s do the Facebook related things. Go to Facebook’s Developer site and follow the tutorial: https://developers.facebook.com/docs/mobile/ios/build/

Instead of putting some stuff in ApplicationDidFinishLaunchingWithIOptions… I placed everything in a function I called feedDialogButtonClicked.

- (void) feedDialogButtonClicked {
   
    facebook = [[Facebook alloc] initWithAppId:@”221872691249521” andDelegate:self];
   
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if ([defaults objectForKey:@”FBAccessTokenKey”]
        && [defaults objectForKey:@”FBExpirationDateKey”]) {
        facebook.accessToken = [defaults objectForKey:@”FBAccessTokenKey”];
        facebook.expirationDate = [defaults objectForKey:@”FBExpirationDateKey”];
    }
   
    /**
    if (![facebook isSessionValid])
    {   [facebook authorize: nil];
    }
    **/
   
    [[NSUserDefaults standardUserDefaults] synchronize];
    NSString *level = [defaults objectForKey:@”level”];
    NSString *score = [defaults objectForKey:@”score”];
   
    NSMutableDictionary *params =
    [NSMutableDictionary dictionaryWithObjectsAndKeys:
     [NSString stringWithFormat: @”I just scored %@ in the %@ Level of Maru Penguin!”, score, level], @”name”,
     @”“, @”caption”,
     @”Get Maru Penguin for free in the iTunes Store”, @”description”,
     @”http://itunes.apple.com/tw/app/maru-penguin/id521096937?mt=8”, @”link”,
     @”http://a2.mzstatic.com/us/r1000/082/Purple/v4/3a/42/b5/3a42b5dc-5452-9dde-cdc8-24e24fb82363/486SkNsbbo2zaF3glfCuo0-temp-upload.iomrjeon.320x480-75.jpg”, @”picture”,
     nil]; 
    [facebook dialog:@”feed”
           andParams:params
         andDelegate:self];
}

I had a little problem with fbDidLogin (the one mentioned in the tutorial), good thing this other tutorial solved it for me: http://ebrentnelson.blogspot.com/2012/02/fbdidlogin-never-calledwhy.html

I ended up commenting out:

/**
    if (![facebook isSessionValid])
    {   [facebook authorize: nil];
    }
    **/

Because I seem to be able to post feeds to my Facebook wall even without it (don’t know why, anyone care to explain?).

Another helpful link: How to include a link in my feed-post using FBConnect from iPhone app? (http://stackoverflow.com/questions/5574433/how-to-include-a-link-in-my-feed-post-using-fbconnect-from-iphone-app) This answer in this post explains stuff that you can include in your Feed Dialog pretty clearly.

And um, I think that is it. That bunch of codes can post your scores from Unity iOS to Facebook.

Now my other problem is, how to add a share link to the feed my app posted? Anyone, help?

Also check out an old blog post of mine about how to post pictures from Cocos2D iPhone to Facebook: http://purplelilgirl.tumblr.com/post/9406805856/howtoaddfacebooktococos2diphone

EDIT:

Since generated feeds don’t get the share button (I Google-d for 2 days and found nothing, at the end of it, it was a Which Avengers are You? quiz that helped me solve my problem) , do you know what I eventually did? I went back to that Cocos2D blog post and did it that way (That’s what the Avengers app did, by the way, I’m Hawkeye :D). I posted a photo of the results screen, lol, which is actually what my boss suggested in the first place. And since when you post photos, you can include captions (no advertising though), so there. Problem solved -ish.

EDIT:

Okay, I am apparently not a very good Googler, since only saw this today: http://forum.unity3d.com/threads/122681-Free-facebook-Plugin-for-Unity-iOS Free, Facebook, Unity, iOS, all the keywords that I’ve been searching for, all along was in the Unity Forums!

.

.

.

By the way, we made an app (the one in the sample), it’s a game and it’s free and it stars a penguin named Maru in search of yummy fishies around the world (so far he only got to Asia)…

Link: http://itunes.apple.com/tw/app/maru-penguin/id521096937?mt=8

How to find out the language of your iPhone when using Unity?

For localizations and stuff, you know? Like say if you want your game to support different languages like English, Chinese, Japanese and stuff.

There’s Application.systemLanguage (I think it’s supported on iOS now, since I tested it on my device and it returns the correct language). It supports these languages: Afrikaans, Arabic, Basque, Belarusian, Bulgarian, Catalan, Chinese, Czech, Danish, Dutch, English, Estonian, Faroese, Finnish, French, German, Greek, Hebrew, Hugarian, Icelandic, Indonesian, Italian, Japanese, Korean, Latvian, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, Serbo-Croatian, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish, Ukrainian, Vietnamese and Hungarian. And if your selected language is not on that list, it returns: Unknown. So if the language that you want to support is on that list, you don’t have to read the rest of this post. Application.systemLanguage is all you need.

But, but, if you are like me (Taiwanese/Chinese), you might need to support not just Chinese, but Simplified and Traditional Chinese (there is a difference), unfortunately Application.systemLanguage, doesn’t know that difference. But the iOS SDK does.

So I want to use iOS SDK’s way of identifying languages using the code:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSArray *languages = [defaults objectForKey:@”AppleLanguages”];
    NSString *currentLanguage = [languages objectAtIndex:0];

I then save the current language to NSUserDefaults:

[[NSUserDefaults standardUserDefaults] setObject:currentLanguage forKey:@”language”];
[[NSUserDefaults standardUserDefaults] synchronize];

So I can access it in Unity, using PlayerPrefs:

PlayerPrefs.GetString(“language”)

So here’s the thing the iOS code needs to be added in AppController.mm that’s generated when you build Unity iOS.

I added that part before Unity gets called ([self startUnity:application]) inapplication didFinishLaunchingWithOptions.

But, but, every time you build, AppController.mm gets overwritten, so, so, what now?

After Unity 3.5, all you have to do is to drag and drop your AppController.mm file into Plugins/iOS folder inside Unity Assets folder and that copy will automatically overwrite whatever that is generated.

And that is it! :)

» Open Source: Library For Importing Flash Animations Into Cocos2D iOS
» Unity Mobile Basic (iOS and Android) are free until April 8!

Check out…

Oh, and Unity has a new store site :)

» Optimising with Unity for iOS
» Export timeline animations from Adobe Flash and import as Cocos2d Actions
» Packt Publishing is about to give away 100 Unity3D books

Marketing blurb aside, the main point of that post is:

Here’s how it works.

1) Someday soon they will announce the release of Unity iOS Game Development Beginner’s Guide from the @packtexplorer twitter account using the code #unityiosRT

2) The first 100 unique re-tweets get the book free!

3) You need to be a follower of @packtexplorer (if you’re doing gamedev you probably should be following @packtexplorer anyway!) so that we can contact you.

4) You need to have a Packtpub account with your email and address so that we can credit your book to that account.

5) A couple of days after the announcement we will list the twitter @username of the 100 winners. If you’ve won, send a DM (twitter direct mail) to claim, including the email you used to set up your Packtpub account.

6) The book will appear on your account for you to download as a pdf or epub on your tablet or ereader.

So watch @packtexplorer for the announcement with the code word #unityiosRT

Mini Tutorial: How to create only one set of GUI for different iOS resolutions in Unity3D?

So, there’s the old iPhone resolution (480x320) and then there’s the retina (960x640). Question is, how do you just create one set of GUI that can fit both resolutions? Because you know scaling and adjusting the GUI elements is such a bother.

Code bit:

public float screenWidth = 960;
public float screenHeight = 640;
   

private Matrix4x4 tMatrix;


void Awake ()
{    RotateDevice();
}
   
void RotateDevice()
{    // Calculate the transformation matrix
     // for the actual device screen size
     tMatrix  = Matrix4x4.TRS(Vector3.zero, Quaternion.identity, new Vector3((float)1.0 * Screen.width/screenWidth, (float) 1.0 * Screen.height/screenHeight, 1.0f));

}

screenWidth and screenHeight is the resolution that you are designing your GUI to, I prefer to scale down, that’s why I set it to 960x640.

In OnGUI add:

GUI.matrix = tMatrix;

GUI.matrix will do all the scaling and transformations and whatnots for you.

And now in your GUI code anywhere you want to refer to Screen.width or Screen.height use screenWidth or screenHeight instead:

if(GUI.Button(new Rect(screenWidth-50, screenHeight-30, 50, 30), “Click Button”))
{   // some code
}

So now, your GUI works for both 960x640 and 480x320.

I got this tip from “Unity iOS Essentials” book :). Although I couldn’t get the code in the book to work as is, so I had to search the forums and stuff to fix the code.

That’s it :)

Quick Review: Unity iOS Essentials

I am currently reading “Unity iOS Essentials”, which I won from ManiacDev’s book giveaway contest.

Unity iOS Essentials

And so far, I find that this book seems to be all over the place and it inspires to be a Game Design book.

Why made me think so? Well, Chapter 1 is about Planning Ahead for an Unity iOS Game, it starts out pretty clear, it aims to give the readers a little heads up before they start their game, it mentions considerations such as terrain, lighting, audio, etc. And then it got to the Let’s Get Started part, which is pretty much the author make all sorts of game design suggestions, and sometimes he would suggest something and not really explain why, such as he said that Fog is not such a great idea, and he suggests that we use particles instead, but why? Why isn’t fog a good idea? He even mentioned that it adds ambiance, so why isn’t it a good idea? Also there is a whole chunk that he talks about teleportation (wut? o.O), which provides means for players to travel across our large levels. He could have ended that bit there, but he goes on to suggest different ways of doing teleportation, warp gates, trains, what nots. And then after being distracted by all those really not important stuff, he starts talking about culling. Now, culling is important (even the author says so). But the reader could have skipped that part (okay, at least I almost skipped that part because I was skipping the trying to skip the teleportation part).

Chapter 2 is called iOS Performance Guide, but like Chapter 1, instead of getting right down to it (the performance guide), he starts the chapter with different kinds of games that the reader can make. And briefly mention skybox and how we’re supposed to use a cube with reversed normals instead of the one that Unity came with (again, no explanation whatsoever on why we shouldn’t use the Unity one). And then some bits about how we should do our terrain (not the technical part, the design part of making a terrain). Some more bits about different game genres.And then suddenly, Unified Graphic Architecture and the other stuff that actually seems like the iOS Performance Guide.

Chapter 3 is called Advanced Game Concepts, but really the things covered in the chapter is not very advanced, it’s stuff about menus, interface, screen sizes, accelerometer, shaders and organizing your assets.

Chapter 4 is called Flyby Background. Can’t say anything about it, because I skipped it.

I’m after Chapter 5 because it’s about Scalable GUIs, which I happen to be working on right now. So far, it’s understandable, pretty easy to follow. But the way the code bits are edited makes it somewhat unreadable. Oh and don’t expect the code to work as is.

That’s where I am right now, there are still four more chapters that I haven’t read yet.

So far, my comment is, it’s all over the place.

Link: http://www.packtpub.com/unity-3d-essentials-for-ios-games/book

Review: Cocos2d for iPhone 1 Game Development Cookbook

“Cocos2d for iPhone 1 Game Development Cookbook” is written by Nathan Burba (@nathanburba).

Cocos2d for iPhone 1 Game Development Cookbook
According to the description, it has “over 90 recipes for iOS 2D game development using cocos2d”. and just by looking at it’s Table of Contents, you’d see that this book covers a lot of topics (some advanced techniques that other cocos2d books have not covered). It also provides solutions to some common problems that we developers might encounter during Cocos2d iOS development.

Like in Chapter 1, it covers graphics, but unlike other books that would only teach you how to make sprites and spritesheets, this book even teaches you how to use apply mipmapping so that that when you scale up or down a sprite it wouldn’t look pixelated. It also has a recipe for a cool technique by swapping palettes so that even with limited amount of art, you can create various versions of a sprite (a single baseball player texture can have be used to create different baseball players with different colored shirts and pants etc). Chapter 1 also answers some questions that you might encounter while working on your game, such as how to I play a video clip of my company’s logo or my game’s cutscene (playing video files recipe). It also covers how to render 3D objects, drawing OpenGL primitives, particles, etc.

Chapter 2 is all about User Input on iOS devices, including the usual (tap, hold, drag), making virtual buttons (creating an analog stick recipe and directional pad recipe) and using the accelerometer. One really cool (for me) recipe that’s also included is gestures (you’d be able to tell what shape the user drew on the screen)!

Chapter 3 is about Files and Data. In making games, we’d need ways to store data (just us score, or level design, etc) and this chapter covers different ways for us to do this. This chapter has recipes for reading plist, json, xml data files, it also includes recipes about archiving objects, saving data using plist, SQLite, Core Data, etc.

Chapter 4 is about physics. Cocos2d has two physics engines that we can use Box2d and Chipmunk. This book only covers Box2d (which is the engine that Angry Birds used), it includes detailed explanations and recipes on how to set up your Box2d environment and simulating physics properties. it even includes a recipe on how to make a car drive up a bumpy hill road!

Chapter 5 is about Scenes and Menus. It also includes how to create buttons and labels (with fancy shadow effects even)! It also has a recipe for wrapping the UIKIT and using it in our Cocos2d game.

Chapter 6 is all about Audio: how to play background sound effects, play music, using the iPod music library. But the really fun bits about this chapter is it even teaches you how to record audio, create a MIDI synthesizer, and to top it all off, it even covers spech recognition and text to speech! Imagine all the games and apps that you can make with those things.

Chapter 7 covers AI, including waypoints, flocking using boids and A* pathfinding. it also teaches you how to run lua scripts and use lua scripts for dialog trees.

Chapter 8 is called Tips, Tools and Ports, and sure enough it includes information about tools that can be used for our Cocos2d game development. Best part, it also includes detailed step by step instructions of how to put your game on the AppStore!

Overall this is a good book with a lot of useful and varied information that have not been covered in other books (and are often lacking in online tutorials). Also
the best thing about this book is it comes with complete working code and detailed explanations on how the code works.

Except some of the topics covered in this book are a bit advanced, so this book is not recommended for beginners, basic Objective C and Cocos2d knowledge is required.

Also the author, Nathan is also very active in the Cocos2d forums, if you have any questions about the book you can just ask him, and he almost always responds immediately.

So if you’re interested to learn new things about Cocos2d iOS development, do check it out! Also if you are interested in this book, I am holding a giveaway contest (where I am giving away 3-4 copies of the book), join now (it’s only until this Wednesday). For more details read my previous blog post (http://purplelilgirl.tumblr.com/post/15713172087/cocos2d-for-iphone-1-game-development-cookbook-giveaway)

Mini Tutorial: How to batch replace textures with different file formats in Unity?

In relation to my previous tutorial: Mini Tutorial: How to batch convert image files to PVR (for iPhone app development)?

So you have a Unity project that was previously not planned for iOS (for PC, Mac or web or whatever), and you might not be as conscious of the texture file formats (iOS is probably the only one with so many constraints).

According to Unity’s User Manual:

Use iOS native PVRT compression formats. They will not only decrease the size of your textures (resulting in faster load times and smaller memory footprint), but also can dramatically increase your rendering performance! Compressed texture requires only a fraction of memory bandwidth compared to full blown 32bit RGBA textures.

So after converting all my textures (or creating a copy of my textures in .pvr format using Automator), I’m supposed to change all the material textures in my Unity Project and that’s a lot. So I wrote this tiny Editor script to do that for me. It will even delete the old texture (.tga or .png or whatever) from the Assets folder.

So here it is:

using UnityEngine;
using System.Collections;
using UnityEditor;                      
 
public class ChangeTexturesToPVR : ScriptableWizard
{
     [MenuItem (“Project Tools/Change Textures to PVR”)]
    static void MakeFolder ()
    {   ChangeTextures();
    }
 
    static void ChangeTextures()
    {
        string filePath = AssetDatabase.GetAssetPath(Selection.activeGameObject);
        int index = filePath.LastIndexOf(“/”)+1;
        filePath = filePath.Remove(index);
        
        foreach (Transform child in Selection.activeGameObject.transform)
        {    Material[] mats = child.renderer.sharedMaterials;
           
            foreach(Material mat in mats)
            {    string texFilePath = filePath;
                texFilePath = texFilePath.Insert(texFilePath.Length, “Texture/”);
                if(mat.mainTexture != null)
                    texFilePath = texFilePath.Insert(texFilePath.Length, mat.mainTexture.name);
               
                string oldTexFilePath = texFilePath;
                oldTexFilePath = oldTexFilePath.Insert(oldTexFilePath.Length, “.tga”);
               
                texFilePath = texFilePath.Insert(texFilePath.Length, “.pvr”);
               
                mat.mainTexture = (Texture)AssetDatabase.LoadAssetAtPath(texFilePath, typeof(Texture));
                AssetDatabase.DeleteAsset(oldTexFilePath);
            }
        }
       
       
    }
}

If your old textures are in “.png”, just change “.tga” in the code above to well, “.png”.

Select the model (.fbx or .obj file) whose materials and textures that you would want to change.

And then go to the menu and click Project Tools > Change Textures to PVR (yes, I created a Menu item for it).

And then voila!

UPDATE:

I edited the code a bit:

using UnityEngine;
using System.Collections;
using UnityEditor;                     

public class ChangeMaterialTexturesToPVR : ScriptableWizard
{
     [MenuItem (“Project Tools/Change Material Textures to PVR”)]
    static void MakeFolder ()
    {   ChangeTextures();
    }

    static void ChangeTextures()
    {
        for(int i=0; i < Selection.gameObjects.Length; i++)
        {    if(Selection.gameObjects[i].transform.childCount == 0)
            {    changeTexture(Selection.gameObjects[i].transform);
            }
            else
            {    foreach (Transform child in Selection.gameObjects[i].transform)
                {    changeTexture(child);   
                }
            }
        }
    }

    static void changeTexture(Transform obj)
    {   
        if(obj.renderer)
        {    Material[] mats = obj.renderer.sharedMaterials;

            foreach(Material mat in mats)
            {   
                string texFilePath = “”;

                if(mat.mainTexture != null)
                {    texFilePath = AssetDatabase.GetAssetPath(mat.mainTexture);

                    if(!texFilePath.Contains(“.pvr”))
                    {    texFilePath = texFilePath.Remove(texFilePath.IndexOf(“.”));

                        string oldTexFilePath = texFilePath;
                        oldTexFilePath = oldTexFilePath.Insert(oldTexFilePath.Length, “.tga”);

                        texFilePath = texFilePath.Insert(texFilePath.Length, “.pvr”);

                        Texture tex = (Texture)AssetDatabase.LoadAssetAtPath(texFilePath, typeof(Texture));

                        if(tex != null)
                        {    mat.mainTexture = tex;
                            AssetDatabase.DeleteAsset(oldTexFilePath);

                            Debug.Log(texFilePath);
                        }    else
                        {    tex = (Texture)AssetDatabase.LoadAssetAtPath(oldTexFilePath, typeof(Texture));
                            mat.mainTexture = tex;

                            //Debug.Log(oldTexFilePath);
                        }
                    }
                }
            }

            obj.renderer.sharedMaterials = mats;
        }
    }
}

Now, all you have to make sure is that the .pvr and the .tga (you can change this to .png or .tif or .whatever), is in the same folder and that’s it.

That’s about it.

Cocos2d for iPhone 1 Game Development Cookbook

Packt recently released a new Cocos2d book: “Cocos2d for iPhone 1 Game Development Cookbook” by Nathan Burba.

Cocos2d for iPhone 1 Game Development Cookbook

Overview of Cocos2d for iPhone 1 Game Development Cookbook

  • Discover advanced Cocos2d, OpenGL ES, and iOS techniques spanning all areas of the game development process
  • Learn how to create top-down isometric games, side-scrolling platformers, and games with realistic lighting
  • Full of fun and engaging recipes with modular libraries that can be plugged into your project
  • Over 90 recipes for iOS 2D game development using cocos2d

Link: http://www.packtpub.com/cocos2d-for-iphone-1-game-development-cookbook/book

Mini Tutorial: How to batch convert image files to PVR (for iPhone app development)?

According to Unity3D’S manual, when developing for iOS

Use iOS native PVRT compression formats. They will not only decrease the size of your textures (resulting in faster load times and smaller memory footprint), but also can dramatically increase your rendering performance! Compressed texture requires only a fraction of memory bandwidth compared to full blown 32bit RGBA textures.

You can use Unity’s built in PVRTC compression, but according to @ToxicBlob

Not all PVRTC are created equal

http://www.toxicblob.com/files/Not_all_PVRTC_are_created_equal.php

Well, the Unity manual also suggested using PVRTexTool to create your PVRs. They have a GUI tool and a command line tool. (Please read ToxicBlob’s blog on how to install the tool).

Since, my artists gives me a lot of texture files, there’s no way that I’d do the conversion one by one using the GUI tool, so Mac’s Automator to the rescue! I love Mac’s Automator, it’s now my new best friend.

So I made an Automator Workflow:

The shell script:

for f
do
/Applications/PVRTexTool/PVRTexToolCL/MacOS_x86/PVRTexTool -fPVRTC4 -pvrtchighquality -yflip 1 -square -i”$f” -o”$f”
done

EDIT: I edited the previous script, adding “-o$”f”” so that the output file will be in the same folder as your input file.

Just add all your textures in the Get Specified Finder Items part and click Run!

And that’s it!

Adorable kid :) and such a smartie :)

kenngo:

laughingsquid:

Thomas Suarez, A 6th Grade Student Who Develops iOS Apps

The charisma.. to present on stage at that age.. wow!

Tags: ios

New iOS and Android Books from Packt

iPhone JavaScript Cookbook

iPhone JavaScript Cookbook

Written by Arturo Fernandez Montoro

Overview of iPhone JavaScript Cookbook

  • Build web applications for iPhone with a native look feel using only JavaScript, CSS, and XHTML
  • Develop applications faster using frameworks
  • Integrate videos, sound, and images into your iPhone applications
  • Work with data using SQL and AJAX
  • Write code to integrate your own applications with famous websites such as Facebook, Twitter, and Flickr
  • These practical recipes include code and screenshots offering a clear step-by-step guide using different frameworks

Link: http://www.packtpub.com/iphone-javascript-cookbook/book/mid/170811hge054

Cocoa and Objective-C Cookbook

Cocoa and Objective-C Cookbook
Written by Jeff Hawkins

Overview of Cocoa and Objective-C Cookbook

  • Develop Cocoa applications using advanced UI concepts
  • Implement the latest Objective-C features and incorporate them into your applications
  • Debug Cocoa applications using advanced tools and techniques
  • Add advanced animation and multimedia to your Cocoa applications

Link: http://www.packtpub.com/cocoa-and-objective-c-cookbook/book/mid/170811c2v5x9

Core Data iOS Essentials

Core Data iOS Essentials
Written by B.M.Harwani

Overview of Core Data iOS Essentials

  • Covers the essential skills you need for working with Core Data in your applications.
  • Particularly focused on developing fast, light weight data-driven iOS applications.
  • Builds a complete example application. Every technique is shown in context.
  • Completely practical with clear, step-by-step instructions.


Link: http://www.packtpub.com/core-data-ios-essentials/book/mid/170811chs5cu

Flash Development for Android Cookbook

Flash Development for Android Cookbook
Written by Joseph Labrecque

Overview of Flash Development for Android Cookbook

  • The quickest way to solve your problems with building Flash applications for Android
  • Contains a variety of recipes to demonstrate mobile Android concepts and provide a solid foundation for your ideas to grow
  • Learn from a practical set of examples how to take advantage of multitouch, geolocation, the accelerometer, and more
  • Optimize and configure your application for worldwide distribution through the Android Market

Link: http://www.packtpub.com/flash-development-for-android-cookbook/book/mid/170811i8nwzh

Android Application Testing Guide

Android Application Testing Guide

Written by Diego Torres Milano

Overview of Android Application Testing Guide

  • The first and only book that focuses on testing Android applications
  • Step-by-step approach clearly explaining the most efficient testing methodologies
  • Real world examples with practical test cases that you can reuse

Link: http://www.packtpub.com/android-application-testing-guide/book/mid/170811fja1lj



Anyone interested in obtaining a free review copy in order to review the book in preferably under 2 weeks time can contact Packt’s online marketing representative Shaveer at shaveeri@packtpub.com with the subject line “book name- review request”. It can be for more than 1 book as well.

1 2 3   Next »