Archive for the ‘Projects’ Category

XtmasTree – Our new iPad App is out there!!

Hi!

XtmasTree @ AppStore

Long time ago… I’ve been busy with our most recent App, XtmasTree for iPad! 🙂

Check it out on the App Store and start sending your last Christmas cards/e-mails to your family and friends… or even best, let your children have fun, playing and decorating original Christmas Tree mail cards. 🙂

We hope you enjoy it!

Have fun and a Merry, Merry Christmas time with your closest ones…

Ricardo 🙂

PS: Here are some screen-shots for you, more available at our main site “http://xphone.me/xtmastree/“.

App Interface – Example of HTML Generation from XML and XSLT

Following one of my last posts “App Interface and Data Update with UIWebViews, XML, XSLT and HTML” where some readers requested me to post an example of this method for rendering/generating HTML from XML and XSLT files.

Due to the lack of time from my part, I’ll not post the iPhone/iOS code but only the XML and XSLT files, to help those guys who asked for that. So, here it goes an example consisting of 2 files which can be rendered on almost any current browser like Firefox, Safari or Opera (it doesn’t worked on Chrome for me, don’t know why).

To try this example, just download the following 2 files:

Then open “scorers.xml” with one of the refered web browsers or simply click directly on that link and you should see in your screen the rendered HTML:

This sample code snippets were extracted from our South Africa 2010 Soccer Scores app which you can still download from the App Store [http://itunes.apple.com/pt/app/south-africa-2010-soccer-scores/id379206383?mt=8] and see how this technique working on a real app.

Now to integrate it in your iOS app, you only need to create an UIWebView where you’ll present it. That’s it! 🙂

As usual, your comments/suggestions are welcome…

JSON vs XML – Part 1: Data Size

In this test to compare XML vs JSON files data size, I transformed a sample of our XML data files to JSON, and I’ve obtained the following results:

File Name XML Size (bytes) JSON Size (bytes) Difference (bytes) Difference (%)
groups 6.218 3.379 – 2.839 -45.6 %
matches 14.541 8.823 -5.718 -39,3 %
scorers 1.250 652 -598 -47,8 %
TOTAL/Average 22.009 12.854 -9.155 -41,6 %

Well, after this first experiment it seems that I can save about 41,5 % on my data size if I change from XML to JSON files.

But wait! And if I reduce my tag/field names’ length to only 2 characters long?

Here are the new results that I obtained after that change…

File Name XML Size (bytes) JSON Size (bytes) Difference (bytes) Difference (%)
groups 3.444 2.934 -510 -14,8 %
matches 8.189 7.154 -1.035 -12,6 %
scorers 756 556 -200 -26,5 %
TOTAL/Average 12.389 10.644 -1.745 -14,1 %

Well, that size difference becomes reduced from near 41,5% to about 14%! It seems that with JSON I can save at least almost 2 KB per App update.

If I have 1.000 updates/day it gives less 2 MB of bandwidth which is perfectly negligible.With 1.000.000 updates/day it gives 2 GB/day, which becomes about 60 GB/month. It’s true that can save me some bucks if I’m paying a non unlimited bandwidth hosting service. But maybe it isn’t sufficient to make me change my App, specially if it doesn’t will make my App to be implemented faster and run significantly better.

By the way, until I publish the next post “JSON vs XML – Part 2: Parsing and Display Speed“, I recommend that you read an interesting article from Nicholas C. Zakas, which I found among many other articles about XML vs JSON: “Is JSON better than XML?“.

It compares several aspects of those two technologies in a succinct way.

Note: This is the first post of the “JSON vs XML – Data Size, Parsing and Display Speed” set.

App Interface and Data Update with UIWebViews, XML, XSLT and HTML

I haven’t wrote almost anything about the development of my first App launched on the App Store: SA2010SS. Now it’s time for a little about that…

I’m picking up that code to reuse it on the next App, which will be similar  but this time, based on the National Soccer League(s) with the addition of one or two interesting features, I hope.

This post is focused on the strategy that I used for our App’s main interface and data updates.

Starting by the data updates, our App gets the data from the server, downloading three XML files, each one with:

  • match results;
  • standings;
  • best scorers.

For the user interface I’ve used some standard iPhone controls (mainly for buttons) but the main screen is almost filled with an UIWebView.

What that means?

That means that the mainly part of our App UI is done using standard HTML web pages. I had some problems to implement this “workflow”, but after achieving that, it allowed us to easily tune our UI, using standard web technologies: HTML + CSS.

The main pages/views are obtained via XSLT:

XML -> XSLT (with CSS) applied -> HTML

So, when the App updates data, it receives three XML files, the correspondent XML data for the screen that the user is seeing, is transformed applying a corresponding XSLT file and then the new HTML page is generated and presented on the UIWebView.

I know this method is not so fast as if I had only used iPhone controls from the UIKit Framework for the views. But the pages scroll and transitions are fluid, except on the first time the App creates and presents each view, which take maybe 2 or 3 seconds do appear.

That’s not perfect, but it was a nice trade-off which allowed us to cut some time (that would be used to learn to use those controls) on our App development and design.

Nevertheless, in the future maybe it’ll be easily to port it to Android OS or any other platform which supports web views.

I’d like to hear your opinions and suggestions about this scheme or better alternatives. Leave me a comment…

How I “killed” a Bug on my published App without touching the code! ;-)

Hi!

This post consists on just a little curiosity which I decided to share with you but, hopping that it will maybe make you think a little different, the next time you find a bug on your App…

There has been almost 3 months since we launched South Africa 2010 Soccer Scores.

Today I was reviewing its code and doing some changes because our next planned app will be based on that. Then I was completely surprised when I discovered a little bug that nobody had reported neither we had never noticed!

The little bug is that on the “About” tab of our App:

SA2010SS-About(marked)

SA2010SS - About screen tab

the link that I marked with yellow on the above screen-shot is WRONG!

Why is it wrong? Because it should link to: “http://xphone.me/sa2010ss” instead of “http://xphone.me/wcs2010“.

That happened for a reason that I’ll also share with you…

The wrong link was because our original submitted App name was “World Cup Scores 2010” but due to the possibility of some FIFA legal copyright/trademarks infringement with the expression “World Cup”, we had to change it at the last hour, to the final name “South Africa 2010 Soccer Scores”.

In order to maintain the coherence we had also changed our original web page about that App, from the “http://xphone.me/wcs2010” URL to the new one “http://xphone.me/sa2010ss“.

Well it seems we updated all the image assets but we forgot that little link on the “About” tab!

Today when I discovered it, the first thought on my head was to correct the code and update the App on the App Store. That would be simple but why should I do that if probably almost nobody will update this App since the World Cup had already finished quite a long time. Simple conclusion: it is not worth the effort!

But because I don’t like to known that there are some living bugs on my code and I would like that if someone click on that link he/she can reach our web page and not a blank error page, I thought a little more on this issue and then I realized, the solution was even simpler… I had just created a simple “index.html” page on “http://xphone.me/wcs2010” that redirects the users the right page! And now the insect is killed! 🙂

Disclaimer: I have nothing against real bugs! 😉

Well, this post doesn’t teach you anything special but I think it can give you an useful message:

  • the obvious solution is not always the best choice!


By the way, if you want to know a little more about SA2010SS, read my old post: “My first iPhone App on the App Store! 🙂“.

My first iPhone App on the App Store! :-)

I haven’t had time to write here, but soon I’ll try to start writing a lot of stuff I had learned with this little project.

By now, I only wan’t to let you know what was the project I had wrote a little about in my second post.

The final App name is South Africa 2010 Soccer Scores and you can find it on the App Store:

You can also see some info and screen-shots on our App @ http://xphone.me/sa2010ss/.

South Africa 2010 Soccer Scores - App Logo

South Africa 2010 Soccer Scores - App Logo

Unfortunately, I had this idea only some days before the World Cup started!

Nonetheless you developed it then we submitted it to the App Store. After 8 days we were notified of a possible copyright issue with a part of the original name of our App!

In less than a day we changed its name, the splash and title images, etc… and submitted it again…after one week it was approved and published on the App Store.

Unfortunately, that day was July 9th, less than 3 days to the end of the 2010 World Cup! :-/

Well, but in the last 3 days we had more downloads than we imagined from a lot of different countries!! That’s a little good return because it boosts our motivation to the next projects, especially an evolution of that App! 😉

And the work was worth it!! We got some experience and we learned a lot!!

Now we know what is to transform an Idea into a real App in the Apple App Store!

…and that is real a really nice feeling!! =:-)

Maybe on of this days I write a little post-morten about this App development.

I’d like to finish this post with kudos to André, he had done some really good logos/images for our App. And we had done a great team on this project. I’d also to thank to Eugen from Icon Drawer for letting us freely use his cute country flags

See you soon…

Ricardo

PS: If you try our App, please send us your comments & suggestions to “xphone.me@gmail.com“.

New Project… New iPhone…

That’s it! New project…

I’m working against the clock trying to implement an iPhone App dedicated to the 2010 Football World Cup in South Africa.

I have a friend who promissed to help me with the graphics, let’s wait I can arrange the time (in my little spare time!) to make a functional prototype! If I can do it, then my friend will do the graphics, we’ll polish ant test the App and try to launch it in the App Store!

Unfortunately I only had this idea a few days ago (it didn’t existed on the App Store, now I can see some similar Apps), but I think that it will be nice to try hard to achieve it, so that I/we can at least gain some more experience on iPhone development.

I hope luck is on our side!

Now, the new iPhone…

Today, Apple announced the new iPhone 4 (powered by the new Apple A4 processor) and featuring quite a lot of new interesting features, like:

  • Multitasking
  • Retina Display, an incredible 960×640 resolution, glass display with a
  • 5 MegaPixel Camera with a LED Flash
  • FaceTime (video calls)
  • 720p HD Video Recording (up to 30fps)
  • Improved Battery Time and so on…

Apple, also announced the new iOS4 that will be available through a free software update. Unfortunately it will be compatible with all previous iPhone versions, except my 2G! :-/

You can see the new iOS4 features on the following page: “http://www.apple.com/iphone/softwareupdate/“.

With so much Apps on my iPhone, the Folders new feature would be very welcome!

I’m also curious and interesting in exploring 2 new features:

  • Gift Apps and
  • Apple’s iAds.

Well, now I have some code to type…

Ricardo

PS:  Here you have a nice video about the new iPhone 4 design: “http://www.apple.com/iphone/design/index.html#design-video“.

About my Development Notes

Hi everyone!

This will be a space for my simple notes about development and other things…

That can include a lot of technologies, knowledge areas and maybe even about stuff out of the IT field.

By now I intend to be more focused on Apps and Game Development for mobile phones (essentially iPhone and Android phones), but not limited to these.

My main objective with this space/blog is to share my little notes and appointments about the things I’m learning, trying, experimenting, developing, using, etc, etc… in a relaxed way, without being to much worried in writing it in a professional way.

This will be an experiment above all, which I think I can use to keep me more motivated and more focused, sharing and discussing (with your help!) my little improvements, problems, thoughts, whatever…

If you find any useful or interesting information here, please let me know, I’ll be glad for knowing that! You’re welcome to share and discuss your opinions here, even when they are different from my point of view, that’s the way we can learn new things with each others.

Be my guest…

Cheers,

Ricardo

PS: I also hope to use this blog to practice a little more of my English (as a foreign language), if you find errors/typos, please let me know it, so that I can improve my English and the contents of this space.

Return top

INFORMATION

Change this sentence and title from admin Theme option page.