FireUIPagedScrollView: UIScrollView pagination made easy!

FireUIPagedScrollView is a UIScrollView ready to paginate all the View Controllers you want.. all of them! :)

It also integrates with UIPageControl and UISegmentedControl.

iPhone and iPad Samples included.

Get it now!

Introducing pseudo: A simple loader of actions and middlewares for express.js

It’s almost impossible to maintain an express.js application in a single app.js file, so that’s we’ve created pseudo, a simple loader of actions and middlewares for express.js

Available on the Node Package Manager: npm install pseudo

More info and sample code on Github: https://github.com/firebaseco/pseudo

Introducing FireIcons

We absolutely love IconFinder.com, that’s why we’ve created an Android app to browse and share Icons right from your Android Device.

Give it a try:

  • It downloads in a second (under 500kb)
  • Ads Free
  • Email the icons in different sizes to your buddies and designer collegues!
  • It’s Free!
  • We built it, it’s absolutely awesome :)

Download it now on the Android Marketplace, it’s Free!

If you have any suggestion please drop us an email!

(Don’t tell anyone but we though we were the only ones interested in such simple app but turns out that people really like it xD)

Why you don’t want to target the latest version of Android OS for your next Project

Almost every recents conversation we are having with new customers starts with “We want to develop an application for Android 3.1” and the main reason why they want to target that specific version is because is the latest version.

Pros and Cons

Even when using the latest features of the OS in a creative way is a plus to be “Featured” in the Market place, it will also cause a negative impact in the number of downloads in the Marketplace. Due the long list of Android Device Vendors, the customizations they make for the OS and their different mechanisms to upgrade the OS, the latest version of Android is not deployed to all devices immediately after the release.

At this time, Android 3.1 is the latest version and is installed in only 0.3% of all Android Devices out there. So if Google claimed this year at Google I/O 2011 that there are approximately 100 million activated Devices worldwide, Android 3.1 an it’s 0.3% is near 300,000 devices while Android 2.2 and it’s 64.6% is around 64,600,000 devices ready to install your new awesome app:

Check this pie chart for June, 2011:

Android 3.1(0.3%) = 300,000

Android 2.2(64.6%) = 64,600,000 devices.

As you see if you target Android 2.2 you will definitely get a decent range of devices and users that are able to install your app. Of course, if you target Android 1.6 you will get near 98% Android Devices ready to install your app, but you have to take in consideration that you may miss some good features like C2DM that is only available starting Android 2.2, so our recommendation is to target Android 2.2 that automatically make it available for later versions like 2.3, 3.0 and 3.1.

Where the numbers are

The Platform Versions Dashboard page gets update every week with useful pie charts and comparison tables of all Android Versions currently deployed worldwide, this is called device distribution. You may want to check other dashboards like Screen Sizes and Densities and OpenGL ES Versions.

Beginner guide to ASIHTTP and iOS Development

If you are going to develop a iOS app that requires making HTTP calls to some web server ASIHTTP library is the right choice.

Now let’s get our hands dirty:

1. Download the source code and uncompress it.

2. Preparing the project

You don’t need to start your project inside the ASIHTTP sample project, open your XCode and create a new project yourself.

2.1 For simplicity sake let’s use the View-based app template.

2.2 Set a name for the project (we are using “ASIHTTPSample” in this example and generated filenames will be also based on this name):

2.3 Since you rarely will modify the ASIHTTP source code, let’s create a file group for this external source code. Let’s create a new Group and rename it as “ASI”:

Your project structure should be similar to this:

3. Importing the Source Code.

3.1 Now, using Finder, open the directory where you uncompressed the ASIHTTP source code and open the file iPhone.xcodeproj:

Now you have two projects open in your XCode.

3.2 Switch to the asihttp iPhone project, select all the .m and .h files in the Classes directory and drag them into the ASI file group of our ASIHTTPSample project that we created in the step 2.3 like this:

3.3 In the import dialog, ensure you mark “Copy items into destination group’s folder” checkbox. This will ensure XCode copy the files into your project and not just referencing the ASIHTTP sample project that you may want to delete later:

3.4 You just copied the core source code of ASIHTTP but also need to copy the Reachability source code. Repeat the same drag and drop operation that we described before with the files Reachability.h and .m of the directory External/Rechability:

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Arial}

Now your project structure should be similar to the following:

4. Properly linking dependency libraries

Even when you imported the ASI source code you still ned to include some libraries in your project, so if you try to build your project now (I personally like the Command-B shortcut) you are going to get some errors like:

  _kCFHTTPAuthenticationSchemeBasic, referenced from:

      -[ASIAuthenticationDialog tableView:titleForFooterInSection:] in ASIAuthenticationDialog.o

or   

_CFHTTPMessageCreateRequest, referenced from:

      -[ASIHTTPRequest main] in ASIHTTPRequest.o

To solve this you need to link against the following frameworks and libraries:

  • CFNetwork.framework
  • libz.dylib
  • MobileCoreServices.framework
  • SystemConfiguration.framework

You can do this modifying the build phases of your project like this:

Clean your project(Shift-Command-K) and build again with no erros.

Congrats, you have successfully imported ASIHTTP inside your own new awesome project :)

You are not going to hurt anyone if you place your .dylib and .framework items into the “Frameworks” file group where those should be, like the following screenshot:

That’s it.

You can find the tutorial source code in github.

If you find yourself in trouble, leave a comment or Contact us.

Allright, see you next time!