Jul 30 2012

Onidev is being re-born as Two Tails!

Two Tails

I’m really excited to announce that our Digital Production & Design team is being re-branded and re-born as Two Tails.

This is a really exciting time for us and we can’t wait to announce some of the fantastic projects we’re involved in over the next 6 months!

Please go check-out our new website, it looks fantastic! www.two-tails.com

If your subscribed to our blog via RSS, please update your feed to: http://www.two-tails.com/feed/


Jul 18 2012

Our first iPhone Game: Leaf Rider!

We’re really excited to announce our first iPhone game, Leaf Rider!

Leaf Rider is a game about a leaf and his friends who are suddenly plunged into despair when a Volcano erupts beneath their home. You must help them escape the red hot lava and avoid the sinister creatures on the way.

It’s the Great ‘Volcano’ Escape… with a leaf!

Leaf Rider

Leaf Rider is due to be released in September and will be available for iPhone and iPad for FREE! Find out more on the official website page!

You can also follow us on Facebook to keep up to date with the latest development of the game.


Jun 12 2012

iOS 6 Announced – What’s new?

It won’t be a huge surprise to those in the mobile industry that Apple has just announced iOS 6 at WWDC.

As the tag line “It will take your iPhone, iPad, and iPod Touch in entirely new directions” suggests, by far the biggest feature with iOS 6 is Maps. Apple has ditched Google for it’s own 3D based maps.
I always thought having Google as a partner and a hard competitor (with Android) was a bit of a thorn in Apple’s side. Now they seem to have removed that issue entirely.

Talking of thorny issues. The relationship between Apple and Facebook was always a bit shaky, with the notable absence of any Facebook integration in iOS 5 (but lots on Twitter). In iOS 6 this is another big feature that has been added – “deep” (as they call it) Facebook integration.

It looks really good, not only providing the obvious “Post to Facebook” features for links, photos, etc, but more significantly in my opinion, is the integration of Facebook into the App Store itself. So you can Like apps or games directly from the App Store. This is great and shows Apple are trying to improve the App Store discover and share-ability.

App Store re-design

One thing only very briefly mentioned during the conference, is a re-design of the App Store, iTunes and iBooks Store. I managed to find a few pics on cultofmac.com which shows the re-design.

It will be interesting to see if the re-design helps with general app discovery, especially with the Facebook integration and how it makes it really easy to share apps.

Another great new feature is the ability to install apps without exiting to the home screen. I wonder if it will be possible to sell your own apps inside another, with all the user having todo is click “Buy” or “Download”. That would be fantastic and would really open up cross app selling opportunities, especially if the user is eager to find more of your apps or games because they like the one they are currently playing.


Jan 31 2012

A fake Apple APNS for Performance Testing

Recently we had to conduct a performance test on our Push Notification Server software to measure how long it would take to deliver a large number of Push Notifications to the Apple APNS.

Bombarding the Apple APNS with 500,000+ messages might not go down well with Apple, and we didn’t want to risk getting our server IP blocked for any reason.

We created a fake APNS on a separate server that we could point our Push Notification Server to. This would accept the request but do nothing with it. It’s not a 100% accurate test (the Apple APNS would be slightly slower since it processes the data), but it’s good enough to find a benchmark.

We implemented this using Python, which you can find the code for below. To use this, run the script on the server you want to be the fake APNS. Then in your code that connects to the socket, replace the apple url with the one to this fake server.
e.g “ssl://gateway.push.apple.com:2195″ will become “tcp://yourserver.com:2195″

From this test and other tests we performed, we found that we could send between 1,000 to 3,800 Push Notifications a second to the APNS. Not too shabby I think!

import SocketServer
 
HOST = "0.0.0.0"
PORT = 2195
 
# this server uses ThreadingMixIn - one thread per connection
# replace with ForkMixIn to spawn a new process per connection
 
class EchoServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
    # no need to override anything - default behavior is just fine
    pass
 
class EchoRequestHandler(SocketServer.StreamRequestHandler):
    """
    Handles one connection to the client.
    """
    def handle(self):
        print "connection from %s" % self.client_address[0]
        while True:
            line = self.rfile.readline()
            if not line: break
            print "%s wrote: %s" % (self.client_address[0], line.rstrip())
            #self.wfile.write(line)
        print "%s disconnected" % self.client_address[0]
 
 
# Create the server
server = EchoServer((HOST, PORT), EchoRequestHandler)
 
# Activate the server; this will keep running until you
# interrupt the program with Ctrl-C
print "server listening on %s:%s" % server.server_address
server.serve_forever()

Dec 23 2011

Merry Xmas!

We would like to wish everyone a very Merry Xmas and a Happy New Year!

Cheers!


Dec 20 2011

We’re hiring!

Guess what? We’re on the lookout for a talented iOS developer to join our team!

Working in our Abingdon Office (near Oxford) you will predominantly be developing iPhone/iPad applications for our clients. You will also have an active role in the design & development of our own games. You may also be developing apps and games for other platforms in the future such as Android or PS Vita.

You will need to be self-motivated, have excellent problem solving skills and be able to manage your own time efficiently. We are looking for a developer who will share our values of passion, quality & service and a good attention to detail is very important. We believe that a rushed product is bad, and that the small details can make a big difference.

This is an excellent opportunity for someone who wants to grow with the company – someone who enjoys the challenge and excitement of being on the cutting edge and someone who will reap the rewards of their hard work.

Download the full job spec here

If you’d like to apply for this position please send us your CV to jobs@onimobi.com

If you think this might be of interest to anyone you know please pass it on!


Aug 25 2011

Steve Jobs Resigns as Apple CEO

Wow, I guess we all shouldn’t be surprised that eventually Steve Jobs would resign as CEO of Apple, especially considering his health problems and extended medical leave from the company’s day to day runnings.

However it is a little sad to find out the day has finally come. I wish Steve Jobs all the best for the future and with his recovery.

This is Steve Jobs’s Resignation letter in full:

To the Apple Board of Directors and the Apple Community:
I have always said if there ever came a day when I could no longer meet my duties and expectations as Apple’s CEO, I would be the first to let you know. Unfortunately, that day has come.
I hereby resign as CEO of Apple. I would like to serve, if the Board sees fit, as Chairman of the Board, director and Apple employee.
As far as my successor goes, I strongly recommend that we execute our succession plan and name Tim Cook as CEO of Apple.
I believe Apple’s brightest and most innovative days are ahead of it. And I look forward to watching and contributing to its success in a new role.
I have made some of the best friends of my life at Apple, and I thank you all for the many years of being able to work alongside you.


Apr 11 2011

Xcode4 bad codegen, pointer diff

We recently upgraded to Xcode 4 and we found a lot of our static libraries no longer built due to a change Apple made with symbol visibility settings.

The errors crop up something like this:

ld: bad codegen, pointer diff in b2ContactListener::b2ContactListener()to global weak symbol vtable for b2ContactListener

The fix we found was to modify the build settings for every static library, as well as the App to:

Symbols Hidden By Default = YES
Inline Methods Hidden = NO

Hopefully this helps someone else out with the same problem!


Mar 2 2011

OniMobi is selected as a finalist for the Southern Oxfordshire New Business Competition!

We have just found out today that we have been selected as one of the 10 finalists for the Southern Oxfordshire New Business Competition!

The judging panel will assess what applicants have learnt from running a new business, plus any achievements, growth, challenges overcome, profitability and potential.

Wish us luck!

 

Southern Oxfordshire New Business Competition


Jan 6 2011

A new year, a new look!

Happy New Year from all of us at OniMobi! I hope you had a good break, whatever you may have been doing.

It’s a brand new year and a perfect time for us to unveil our new look for OniMobi. We’ve redesigned our logo for both OniMobi and OniDev, and we’ve given our websites a lick of polish to smooth things over. We hope you like it!

Last year was a busy and exciting time for us. We’ve had the pleasure of working with some great clients, building a wide range of fantastic apps – some of which are still to be released! In November Simon joined the team and we moved into our new office in Abingdon (near Oxford, UK), which has been heaps of fun.

Looking to the year ahead, we’ll continue to design & create apps for our clients but we’ll also be doing a lot more of our own stuff in the months to come. We’ve been talking about our upcoming games for a while now but hopefully we’ll start to unveil the lid on some of them soon!