Turn Your iPhone Into a Powerful File Manager with Berokyo

Managing files on your iPhone can be a pain. iOS includes file viewers for most common file types, and with a few 3rd party apps you can easily edit many common office documents and other files you might receive in emails. You can even view or download any file in your Dropbox or SpiderOak accounts with their respective iPhone apps. The problem is, every app manages its own files, and there’s no built-in file explorer to let you save files and access them from any app.

Enter Berokyo. Berokyo is a powerful app that lets you manage files and organize them into folders, right on your iPhone or iPad. You can import files from many apps, then open files saved in Berokyo in other apps. It’s also fully integrated with Dropbox, so if you store most of your files in the cloud you’ll be able to use them from your iPhone easier than ever. In essence, it is the closest thing you can get to Finder or Explorer in iOS. Let’s dive in and see how Berokyo can make your mobile computing life easier in iOS.

Setting Up Berokyo

Berokyo uses a unique bookshelf interface to help you manage files and folders from Dropbox, iTunes, or files already stored on your device. When you first launch the app, you’ll need to add a new bookshelf to start organizing files.

Tap the button on the bottom, then choose to create a new synced contacts, documents, or Dropbox bookshelf, or create a new empty bookshelf that simply stores files in Berokyo. The Contacts bookshelf will show all of your contacts from your iOS Contacts app, while the Documents bookshelf lets you import files directly from iTunes on your computer.

Berokyo brings file management to iOS

The Dropbox shelf, as you would expect, lets you see all of the files and folders from your Dropbox account. You’ll need to first signin with your Dropbox account, and seconds later you’ll see all of your Dropbox folders and files appear in Berokyo shelves.

All folders use the same default icons you’d see in OS X’s Finder; shared folders show 3 pereson silhouettes, the public folder shows a globe, and Music and Pictures folders show a music note and a camera, respectively. You can now browse your Dropbox, open files, and upload any file you have saved in Berokyo, and can even view files and folders you’ve already opened when you’re offline.

Add your Dropbox to browse folders offline

Importing Files

If you added a Documents shelf, then you’ll be able to add files and browse those stored on the shelf right from your Mac or PC in iTunes. Make sure to add the Documents shelf, then the next time you sync your iPhone with iTunes you’ll see a Berokyo listing in the File Sharing section of your iTunes sync settings. Now you can copy any file back and forth between your device and your computer without worrying about what iOS app you need to sync it with. Once it’s in Berokyo, you can open the file in any compatible app on your device!

Add or edit files from your computer with iTunes Sync

Right on your iPhone, you can add files to Berokyo from any app that can send files to another app. This worked great with images, common office files, PDFs and ePub files, and more in our tests. Next time you get an email attachment, or want to move a file out of Documents to Go, Evernote, or other apps, you can select Berokyo as the app to open the file. Then, Berokyo will ask you to select where you want to store the file, and it will be saved for you to open anytime later in any app.

Importing files from other apps is one of the best features

Putting Berokyo to Work

Now that you’ve got your files stored in bookshelves in Berokyo, it’s time to put them to work. You can quickly find any file or folder you want from the search bar on the top, and the files and folders that don’t fit your search will disappear, rearranging to show only those that include your query. The only problem is, search only works in the folder you have open, so you can’t search through your entire Dropbox for file stored in folders.

If you need to get to files in folders, double-tap on the folder to open it. Then, tap on individual files to open, view, or email them. You can also see some quick info about files, including its size and the last time it was modified, just as you could in the file explorer on your computer. Or, if you need to switch to another bookshelf, just swipe left or right. This way, no matter if your files are saved in Dropbox or stored in the Documents shelf, you’ll always be able to access them and open them in your favorite app.

Find files fast, then preview, email, or open them in another app

You can also customize your Berokyo interface. Tap the color palette icon on the bottom to select from a variety of textures and colors for your bookshelves, including everything from cork to brushed metal. You can also remove files from your device, hide file names, or edit existing files and folders from the other options on the bottom toolbar.

With a variety of colors and styles, there's a Berokyo for everyone

Upload Files to Dropbox Easier Than Ever

One of my favorite features in Berokyo is that you can upload multiple files, pictures, or videos to Dropbox at once. Just tap the plus button to add a new Bookshelf or folder, or tap Add Items to import the files you want. Now, you can select to add photos and videos from your photo roll, or select Documents to add files from your Documents shelf.

Add new files and folders, or create a new bookshelf to organize your files

Tap each of the files that you want to upload to your Dropbox shelf, and you’ll see a small notification letting you know that the photo or file has been added. Once you’re done, you can go back to your shelf  to see your files being uploaded to your Dropbox. You’ll see a blue progress bar as the file is uploaded, then the standard Dropbox check mark will show files that are safely stored online. This is much easier than uploading photos individually through the Dropbox app, and plus, with the Documents folder, you can now add any other file to Dropbox that you exported from an email attachment or another app. Suddenly, your files aren’t trapped in iOS any more!

Upload multiple files to your Dropbox at once

Tweak Your Settings

Not only does Berokyo let you use your files like you want, it also lets you use the app itself as you want. Simply tap the gear icon on the top to customize tons of things about the app’s interface. You can customize the spacing between files and folders, choose to display file extensions, open folders with one tap, tweak the folder open animation, and more. Between the color customizations and the settings you can tweak here, you can make Berokyo work exactly like you want.

Tweak your settings so Berokyo works just like you want

Conclusion

In short, we’re very impressed with Berokyo. It makes managing files and using them in any app you need actually possible without jailbreaking your iPhone. Plus, it’s a universal app, and is even more useful on iPad with its larger screen and greater potential for productivity.

I’ve begun using Berokyo as my default way to use Dropbox from iOS on the go, and it’s worked great all the way. If you’ve been frustrated with the limited ability to move files around in iOS, be sure to give Berokyo a try. It just might be what you’ve been waiting for!

Quick Look: PhotoTangler

Quick Look posts are paid submissions offering only a brief overview of an app. Vote in the polls below if you think this app is worth an in-depth AppStorm review!

In this Quick Look, we’re highlighting PhotoTangler. The developer describes PhotoTangler as a simple yet powerful tool for turning your favorite photos into beautiful collages. Simply import your images or add text captions, and PhotoTangler’s unique blending system instantly merges them together without seams.

With a simple multi-touch interface and immediate results, creating high quality collages with PhotoTangler is a snap!

Read on for more information and screenshots!

Screenshots

screenshot

PhotoTangler

About the App

Here are the top five features you can expect to see in the latest version:

  • Easy and fun to use
  • Unique image blending, with instant results
  • Manipulate photos using multi-touch
  • Add text captions
  • Save results to your phone

Requirements: iPhone (or iPod Touch) with iOS 3.1 or higher
Price: $1.99
Developer: Solid Eight Studios

Vote for a Review

Would you like to see us write a full review of PhotoTangler? Have your say in our poll:

Would you like to see PhotoTangler reviewed in-depth on AppStorm?customer surveys

Quick Look posts are paid submissions offering only a brief overview of an app. Vote in the poll if you think this app is worth an in-depth AppStorm review! If you’re a developer and would like to have your app profiled, you can submit it here.

10 Gorgeous iPhone Apps for Making Your Own Ringtones

Certain categories in the App Store stand out not only for their functionality but for the beautiful design trends that you tend to see within them. Custom ringtone apps are definitely just such a category and several of these apps have absolutely gorgeous interfaces.

Though there are tons and tons of ringtone makers available, today we’re focusing only on the top tier of attractively-designed applications. Each of these apps comes in at less than a buck and all offer their own spin on giving you the ability to build custom ringtones from the music on your phone or even audio that you record yourself.

How Do They Work?

Though they offer different creation methods, each of these apps is forced to follow the same system for installing the ringtones. Since developers don’t have direct access to the iPhone ringtone directory, these apps place saved ringtones in the iTunes file-sharing tab that appears when your phone is connected via USB.

From here you simply save out the ringtone file to somewhere on your computer, then drag it back into the Ringtones section of iTunes. After this you can sync your phone to see the ringtones appear.

This multi-step process is definitely a hassle, and some developers try to make it simpler with email and Dropbox integration, but there’s really no way currently to create an app that can do it all in a single step.

If you prefer making ringtones on your Mac, our friends at Mac.AppStorm recently published an article comparing 4 great ringtone apps for Mac.

Ringtone Maker Pro

“You can change the playback speed and sound pitch to make funny ringtones! Convert a male artist’s sound into female or vice versa! Turn country music into club dance by accelerating the speed!”

As you can see, Ringtone Maker Pro gives you a ton of freedom to really customize your ringtones in a number of unique ways. The interface is a nice dark texture with blue glowing highlights and realistic sliders.

Price: $0.99

screenshot

Ringtone Maker Pro

Ringtone Designer Pro

“Simply select a song you’d like to use as a ringtone, swipe the audio wave to select a short clip, and create your ringtone. It’s that easy!”

Ringtone Designer Pro has one of my favorite interfaces on the list. If you’re creating a ringtone from your music library, you simply drag the sliders on the waveform to easily select the portion you want. Alternatively, if you’re recording your own, there’s only a big record button and a speaker. Ringtone apps are usually quite cluttered but this one is a great mix of useful and simple controls.

Price: $0.99

screenshot

Ringtone Designer Pro

Ringtone Maker Pro (by Mobile17)

“Based on technology from our award-winning web service, you’ll choose from both popular edits generated by users online and options to drag’n’drop fine-tuned editing controls for making your own ringtones in just seconds!”

If you’re not a fan of the dark blues and blacks of the previous two apps, this one breaks the trend with a much lighter interface. It’s as simple as dragging the slider to set the start time and choosing your duration. The awesome and unique feature here is the ability to see what start times others have chosen for the same song!

Price: $0.99

screenshot

Ringtone Maker Pro (by Mobile17)

Create Ringtones!

“Are you tired of hearing the same ringtones over and over again? With Create Ringtones! you can create unlimited amount of custom ringtones with ease! Use your iPod music or Record your own!”

If you liked the Ringtone Designer Pro interface but want some more advanced controls, check out Create Ringtones. In fact, this may be the best app on the list. The design is beautiful, the feature set is powerful and best of all, it’s free! You can bet that this one has a permanent spot on my iPhone.

Price: Free

screenshot

Create Ringtones!

Ringtone HD

“In addition to converting songs from your iPod library into ringtones, Ringtone HD features in-App Voice Recording which lets you convert live audio into ringtones. This feature lets you create and assign individual voices as ringtones to the calling number of the person calling you in your contact list!”

Wavelengths are pretty and make a lot of sense to audiophiles, but many people might find a simple timeline a lot more useful. Ringtone HD allows you to quickly set the beginning and end time so you can grab just the right snippet of the song that you want.

Price: $0.99

screenshot

Ringtone HD

DIY Ringtones

“The most dedicated and professional ringtone maker. Maintain the original quality of music during conversion, without any compression or attenuation.”

The built-in UI controls are awesome on this app and as a bonus you can set your own background images to really personalize the experience. You also have full control over both the speed and the fade of every ringtone you create.

Price: $0.99

screenshot

DIY Ringtones

Dring ~ Beautiful ringtone creation

“Dring offers a gorgeous handcrafted interface to customize and create your own ringtones directly on your iPhone. You can of course select the song of your choice or use the microphone feature to create your own recordings. But what about adding some extra fun to the whole process? Well, thanks to Dring, you can now enjoy our exclusive Remix feature to literally mix both of them in a single ringtone!”

If you’re a designer, you simply can’t help but appreciate the beauty that is the Dring interface. The pixel-perfect art nails that sweet spot between realistic and cartoony. It’s also one of the only apps out there that lets you combine a music track with recorded audio.

Price: $0.99

screenshot

Dring ~ Beautiful ringtone creation

Ringtone Wizard Pro

“Extreme precision: trim your songs with 0.1 second accuracy to create perfect ringtones! Customize ringtone duration from 6 to 40 seconds and ringtone volume from 50% to 200%! Boost the volume of songs to make sure you will hear your phone ringing in any environment.”

This one is eerily similar Ringtone Maker Pro in just about every way possible. I’m not sure which came first but this one looks a little more professional as it doesn’t have the cartoon characters near the bottom.

Price: $0.99

screenshot

Ringtone Wizard Pro

Mega Ringtone

“You can make ringtones based on your favorite songs from your iPod library or record sounds using the built-in microphone. Maximum length of ringtone 40 seconds. Fade-In, Fade-Out sound effects included.”

Another free app that uses the popular waveform control scheme. This one implements a brighter, more intense color palette that’s really eye catching.

Price: Free

screenshot

Mega Ringtone

Ringtone Remix Pro (with Dropbox support)

“You’ve got the best phone – why settle for the same boring ringtones? Now you can use your favorite music tracks to make free ringtones and calendar alert tones in seconds – Ringtone Remix makes personal ringtone creation more fun and, with our unique Dropbox support, easier than ever before!”

Though the waveform is dark and high-contrast, the rest of the UI is nice and light with subtle gradients and realistic shadows. The awesome Dropbox support feature allows you to wirelessly transfer finished ringtones to your computer.

Price: $0.99

screenshot

Ringtone Remix Pro (with Dropbox support)

Which Is Your Favorite?

All of the apps above were designed by extremely talented developers and Photoshop wizards. Collectively they represent the most functional and attractive group of ringtone apps you’ll find just about anywhere.

Leave a comment below and let us know which was your favorite. I personally love the value of the free “Create Ringtones!” app and the unbeatable design of “Dring”.

Winners Announced: Win One of Five Copies of OffMaps 2 for iPhone!

We’re happy to announce that we’ve randomly chosen our five winners, each of whom will receive a free copy of OffMaps 2 for iPhone and a voucher for 5 extra map downloads!

If you’re one of the lucky five listed below, stay tuned, you should be receiving an email with more details soon!

Have you ever wanted to access interactive map data on your iPhone in an offline setting? Whether you’re traveling the world or in your own backyard, OffMaps 2 gives you the awesome ability to download and store maps and data from cities all over the globe.

Because you’re an awesome AppStorm reader, today you’ll get the chance to get this amazing app completely free! Read on for more information on how to enter.

OffMaps 2 Main Screen

The main screen of OffMaps 2 allows you to access all of the maps that you've downloaded.

How To Enter

Today we’re pleased to announce that we have five OffMaps 2 promo codes to give away! As an added bonus, each winner will receive a voucher 5 extra map downloads. In case you’re wondering, that’s an awesome deal!

To enter, simply follow us on Twitter and leave a comment on this post with your username. We’ll choose the four winners at random one week from today. Good luck!

Level Up Your Real Life Productivity with the EpicWin Game

Has your spouse been bugging you for the last week about taking out the trash? Can’t remember the last time you clipped your toenails? Keep forgetting to mail off that important form?

Sounds like you’ve got a case of procrastination, and you might need some help getting out of your chair. If self-motivation isn’t your strong suit, EpicWin is here to help. The developers’ goal: to make it fun enough to get things done that you don’t procrastinate.


EpicWin is a lot like a regular task manager, only with a role-playing game built around it. You create a character, complete quests, earn experience and loot, and walk away from the washing machine with much bigger biceps* thanks to all those stamina points you’ve earned.

*Bigger ego is probably more accurate. Any muscle growth experienced as a result of completing quests is imaginary.

So how do you go from regular peasant to stalwart dwarven chore-master? Keep reading as our hero Flobgoblin defeats the greatest threats in all of Choredom.

Creating Your Character

The character creation process is a simple one, and unlike most real games, the choices you make at the start are purely aesthetic. While the choices you make here won’t make any practical difference, it does seem like the only way to start afresh is by removing and reinstalling the app, so choose an avatar you’ll be happy to look at as you go about your day!

The Character Creation Screen

The Character Creation Screen

Type in your name, pick an avatar, and you’re ready to begin.

Creating & Completing Quests

In EpicWin, tasks are called quests. On the app’s main screen, you can view, complete and search your quests, and tap the pencil icon to create a new one. To complete a quest, tap and hold the circled number to the left of the quest description. The quest will burst into a shower of stars to let you know it’s been marked as completed–or in EpicWin vernacular, beaten–and you’ll receive gold and attribute points.

When you first install EpicWin and create a character, there are several tutorial tasks that explain various parts of the app as you complete them so that you’re quickly up to speed.

The Task List & Task Creation Screen

The Task List & Task Creation Screen

When you’re creating a new quest, you’re given many of the options that serious task managers possess–the ability to set a due date and an alarm, set a scheduled frequency for repeating tasks, and you can even link the task to one of your iCal or Google Calendar calendars.

After setting those, you’ll notice some more obscure features. Set the ‘epicness’ based on the significance of the quest, and you’ll be rewarded accordingly. Checking the letterbox, for example, is the kind of thing you’d want to set to the minimum epicness of 50, while completing a big project would be better suited at the high end of 300.

You’ll also want to decide on an attribute for your quest. You can pick one attribute from Strength, Stamina, Intellect, Social and Spirit. Use your best judgement to theme your quest. I like to make doing the dishes a feat of stamina, the evil job that tests the limits of my will. Writing a review of some gimmicky iPhone application might be a feat of Intellect.

EpicWin doesn’t have all the task creation and organization features that a hardcore GTD follower would want to see, but for the fun, light nature of the application it’s surprisingly versatile.

Progressing Your Character

As you progress your character by finishing quests, you’ll occasionally earn loot. The loot doesn’t actually do anything, so it’s more akin to earning an achievement in a regular game. You can share your loot on Twitter and Facebook if you’re the kind of person who sends Mafia Wars spam to your friends, and see what you were awarded the loot for.

The Loot & Progress Map Screens

The Loot & Progress Map Screens

As you complete quests, your character is moved along a map. You can scroll down the map to see a history of your loot, and the total gold collected and miles travelled is tallied on the page as well. Unfortunately, after reinstalling the app the loot icons on the map are bugged out and show a white square.

After you’ve completed a bunch of quests, you’ll have gained enough experience to level up. When you do, the app makes sure you don’t miss the occasion:

You've leveled up!

You've leveled up!

Your Profile

You can check your character’s profile to see how many attribute points they have and how close to earning the next point they are. Like many features of EpicWin, there’s no significant ramifications for having more of one stat over another, but if you’ve used a system to determine what sort of quests reward certain attributes you’ll be able to get a rough overview of where you spend your time.

At the bottom of the profile you can also see your level and how much experience you have until you level up again, keeping you motivated to peck away at your task list.

Your Character Profile

Your Character Profile

Conclusion

There’s no doubt that EpicWin is a fun approach to something that’s usually pretty dry. The developers have created a great game-like interface with an awesome soundtrack (which may get annoying after a while).

For an app of its kind, EpicWin is pretty full-featured in the task management department. Scheduling, alarms, and calendar syncing are all essential basics. Productivity nerds will find that the app falls short of their needs–there are no contexts or projects, no way to assign tasks to others and no interface through which to access your tasks via the desktop or web.

But it’s not really meant to be that kind of task manager, either, so I can’t fault it for that. I wouldn’t recommend the developers focus on adding features to that aspect of the application. What I would recommend is that they improve the gameplay aspect, adding meaning to attributes and loot, and perhaps including a social element. People are addicted to games like World of Warcraft not just because their character advances, but because when they do gain a level or equip a new piece of loot it has an impact on the gameplay and their interactions with others.

As it stands, the app is more of a gimmick that might motivate you to complete tasks while you’re testing it out, but once the novelty of flashy screens and useless loot wears off, it’s less likely to provide a motivating factor.

If you don’t need a heavy duty productivity app, EpicWin is as good or better than any of the lighter alternatives, and brings some fun to the process. It’s definitely worth a look, and the gameplay component has potential for the future.

Jelli: Radio Meets Democracy

Those of us who aren’t living in a country lucky enough to have Spotify are still on the lookout for the ideal streaming radio app. Most services that let you have any say in the songs that play charge you a monthly fee. Others, like Pandora, merely let you guide the stream in a vague direction based on your personal interests.

Jelli is a new player in this category with a novel idea: vote-driven live radio. Keep reading to see what exactly this is, how it works and whether you should try it.

Tuning In

When you first launch the app you’ll be asked to sign up for the Jelli service. Like the app, this is completely free and you may be already signed up if you’re familiar with the Jelli web service.

After you sign up, you’ll be taken to a horizontal menu of stations. Unfortunately, you don’t have many options to choose from. I was given thirteen stations ranging from classic rock to country, some even had no set genre and were free to play anything.

screenshot

The Jelli station tuner

As you can see, the station preview shows you what’s currently playing. Tapping on the little information icon in the lower right of a station preview will show you the last four songs streamed to further help you get a feel for the personality of that particular choice.

Voting and Listening

Once you choose a station, tap on the play button to begin streaming the current song. From here you can get a glimpse of the song name and album art, contribute to the Rockometer (more on that later) or tap “Vote” to see a list of other songs.

screenshot

Current song (left) and the song poll (right)

Here comes the interesting part, the list of songs you see above isn’t so much a queue as a poll. Users currently listening to Jelli decide what song will be played next by scrolling through the list and voting for their favorites.

Songs are then ranked by their score and the song with the most votes will be played next. Every time a new song starts, you get a new opportunity to cast your votes and influence the order.

Searching

Jelli doesn’t limit you to the songs currently shown on the charts. You can use the integrated search feature to find specific artists and/or songs that you want to start voting up for future play.

screenshot

You can search and browse by artist or song

The Rockometer

The fun doesn’t end with simple yes or no votes. There are other layers added to the “game” to make it more interesting. One of these layers is the “Rockometer”, which allows users to voice their opinions about the currently playing song by tapping the thumbs down or horns gesture.

screenshot

You tell Jelli whether the current song sucks or rocks.

The little meter above the hand icons shows the current state of the Rockometer, in other words, what listeners think of the currently playing song. If the Rockometer gets too far towards the “Sucks” side, the song is immediately pulled and the next highest ranked song begins.

Rockets and Bombs

In addition to the Rockometer, each user gets a limited number of Rockets and Bombs, each of which has a unique outcome. The bomb is simple, throw it and it destroys a song’s score enough to plummet it to the bottom of the list, which greatly reduces the likelihood of it getting played.

screenshot

Rockets and Bombs give you more voting power

The Rocket is a little more unique. Rocketing a song boosts it up in the rankings, but not necessarily all the way to the top. If the community likes your rocketed song enough that it gets played, you get credit for it.

When I successfully rocketed a Blind Melon song to the top, there was an audible announcement about how a new user had submitted the song and my user name appeared next to the song as it played.

Will My Songs Really Get Played?

Jelly presents a really interesting way to listen to music. It’s like crowd sourcing a DJ position. The app makes good on its promise of content that is truly controlled by the users. The application might guide the content to a degree, but user votes have the ultimate say.

At this point you’re no doubt wondering how much one person can really affect the outcome of a station. Fortunately, it seems that you can currently influence it quite a bit! The active Jelli community is small enough that, in my testing, most of the high-ranking songs only had around three votes. This means that my one vote had a significant effect on the rankings.

As I listened, I genuinely felt like I had a voice in what was being played. Songs that I voted for were frequently played and I even successfully rocketed a song to the top as we saw above.

Closing Thoughts

Overall, I really enjoyed using Jelli. It’s an innovative idea and I think there’s a lot more room for this kind of thinking in the area of radio.

However, my impression of the app wasn’t all positive. For one thing, the interface really turned me off. For whatever reason, it just didn’t resonate with me and often felt cluttered. I would honestly love to see it completely redesigned from the ground up so that it’s more subtly styled like Rdio.

Also, as I stated before, there were very few stations to choose from. This might not be so bad if the stations were defined a bit better and organized in a new way, but the current system is vague and leaves you guessing.

The bottom line though is that it’s a free app that genuinely provides a cool new way to interact with streaming music. There’s definitely no reason not to download Jelli and let us know what you think!

Project Noah: Discover and Share Nature From Your iPhone

Smartphones and apps are accused of making us less social and more glued to screens than ever before. Most of us argue that apps help our lives, but in all honesty, most of us should spend a lot more time outdoors than we really do. So the question is, “can an iPhone app can inspire you to get out and explore the real world around you more?”

Project Noah just might be the solution. This award-winning app makes it easy to discover the wildlife right around you and share your own wildlife discoveries with the world. Whether it’s a deer in the woods, a snake in your garage, or that tree around the corner that you’ve always wondered about, we all have wildlife around us that we’d love to share with the world. Project Noah inspires you to find out what’s living around you to help both you and others learn more about our planet. Before we put on our hiking boots and hit the trail, let’s take a closer look.

Create An Account

The first thing you’ll notice when you download the app is its absolutely gorgeous icon and interface. It looks like a miniature field guide complete with taped-in pictures and cloth scout-style badges. We’re constantly amazed at the beautiful interfaces iPhone app designers create, and Project Noah takes this to a whole new level. Becoming a naturalist has never looked so easy or inviting!

If you’ve never used Project Noah, it’s easy to get started. You don’t have to make a new account; just sign in with your existing Google, Facebook, Twitter, Aol, Yahoo!, or Windows Live account. Project Noah will then import your name and avatar so you can start sharing wildlife without remembering yet another password.

Project Noah's gorgeous interface

Join Missions

The second option along the bottom lets you discover missions, which are organized groups looking for certain types of wildlife. From Birds of the World to The Color Red, there’s something that’s being discovered and categorized that will appeal to anyone. You can scroll through all of the global missions or find those close to you. Tap a mission to learn more about it, and if you’d like to contribute photos and info to this group, tap Join Mission. This is a great way to get ideas of what others are finding and get inspired to find wildlife of your own.

Discover and join missions to help catalog wildlife

Discover Wildlife Around You

The Field Guide is one of the more interesting sections. It will show you wildlife that has been spotted near you. You can help add info to plant and animal listings you recognize, or just see if anyone else has spotted that same black bear that keeps invading your back yard. Want to see a specific animal near you? Just enter it in the search box on the top left.

Find wildlife being spotted right around you

You can also sort the Field Guide listings by category as well, which is a fun way to see the types of wildlife around you. Rotate the category wheel to select from a variety of categories, each with a stylish icon of the animal. The category selector is amazingly detailed, and is the best showcase of Project Noah app’s design. Once the category you want is highlighted, tap the center Go button to view just those types of animals.

The category selector's artwork detail is incredible!

Share Wildlife You Discover

Ready to share your own wildlife discoveries with the world? Head back to the main My Noah page, and select New Spotting to add a photo of a new plant or animal you’ve found. You can take the picture right then, or select a picture you’ve already taken. For animal shots, it’s often easier to add one that you’ve already taken to make sure it doesn’t get away before you can open the app and take a shot. Either way, scale and crop the image to size when you’re done, then select the category of wildlife you’re adding.

Project Noah did crash on us the first couple times we tried to add new discoveries. If you have the same problem, try restarting your device – that cleared up the problems.

Scale and crop your image, then select a category for it

Then, you can add the location of the spotting. If you’re adding a picture right after taking it, then your current location will likely be correct. Otherwise, you can search for the location in the search box, and drag the pin to the correct spot on the map. Your new wildlife spotting is now ready to submit, though you can add some more info to your post first if you like. Alternatively, slide the Help me ID this species slider if you’re not sure what the animal or plant is, and others can help you identify it.

Mark the location you spotted the animal or plant in the photo

There’s tons of information you can add to your post, including the common and scientific name, description, habitat, and notes about this particular shot. You can also add tags to your post to make it easy for others to discover. Choose from commonly used tags, or add new ones related to your post. Then, don’t forget to add your shot to a mission if you’ve joined a relevant one. For example, I added my photo to the Birds of the World mission.

One of my favorite features is the ability to set the Date Spotted on any new shots you add. So, if you have some pictures you’ve already taken of animals or plants that you’d like to share or let others help you identify, you add them as a new spotting. Then, you set the date back to the day you took the picture and perhaps add a note about when you took the picture and why you’re adding it now.

You can add older photos, too, and still set their correct date

After you’ve added all your information, your new spotting post will contain plenty of data to let others learn from your shot or help you figure out what animal it is. You can go back to your posts from the My Spottings button on the home page, where you’ll see any updates that have been added to your posts.

View all of the wildlife you've spotted and see updates others added

Sharing Your Findings

Project Noah is not just an iPhone app; it’s also available for Android devices and as a webapp that can be used from any computer. You can follow other users to keep up with the animals they’ve spotted, and can also earn patches for your achievements and discoveries. It’s like Foursquare mixed with Instagram, redesigned for wildlife!

Plus, you can tie it into your other social networks such as Twitter or Facebook. Whether your friends are using Project Noah on their iPhone, or just check your Facebook page from their PC, they’ll be able to keep up with the new nature discoveries you’re making. Just open your profile and activate Twitter and/or Facebook sharing if you want to share your findings with your other networks.

Gain patches and share your findings with the world

Conclusion

Project Noah’s mission is to “encourage people to reconnect with nature and document local wildlife,” and they’ve definitely succeeded with that! The app is intricately designed and makes it fun to document the wildlife you’ve discovered and find other organisms that are being discovered nearby.

So go grab your iPhone or iPod Touch, download this free app, get outdoors, and find something new to document! It’s a great excuse to get away from your office and use your iPhone to learn more about the world around you!.

Weekly Poll: How Serious Is Your App Addiction?

With the iTunes Store now containing well over 300,000 apps and growing at unprecedented rates, the iPhone has become the source of a fairly new type of serious psychological condition: App Addiction. We here at iPhone.AppStorm are full-blown app addicts and proudly download and test every new toy we can get our hands on.

Today we want to gauge your level of app addiction with a simple poll that asks how many apps you download per week (not counting standard updates). Are you a casual downloader or an obsessive app-crazed lunatic!?

After voting in the poll, leave a comment and let us know how many of these are paid apps and how many are free. Do you stick to free downloads or are you spending serious amounts of cash to build up the ever-growing kingdom of Apple?

iPhone Game Friday: New Releases

Since we’ve featured a good number of premium titles over the past few weeks, we figured it’d be nice to lighten the load on your wallets a bit and showcase some of the recent free titles that have impressed us.

This week’s picks are therefore completely free, so you’ve got nothing to lose by checking them out. And if you think free games aren’t as fun as paid ones…think again!

Overkill

Overkill

Overkill

When it comes to amazing amounts of content given for free, Craneballs Studios seem to be looking for a medal to win. Their new shooter, Overkill, is a beautiful and vastly entertaining time waster with an incredible amount of unlockable material.

The game is essentially an on-rails shooter without the rails, where you must defeat waves of enemies from your fixed position. Doing so earns you money and Overkill Medals, which are the in-game currency used to unlock more environments, upgrade your weapons, buy more ammo for them, and more. As you progress, you’ll get promoted through 30 ranks, and encounter tougher enemies including nasty flying drones that are a pain to take down.

The graphics are lean and impressive, but what really makes Overkill stand out is how satisfying it is. You can play for short spurts and get a great action gaming experience without shelling out big money. It’s also very kind about rewarding you: more than 80 achievements can be unlocked, and although you can speed up your upgrading by buying OM via in-app purchase, there are also more ways to earn them, including standard play, email/Facebook referrals, and TAPJOY. There’s lots to love in this package, so if you like shooters then grab it and enjoy!

Price: Free
Developer: Craneballs Studios
Download: App Store

[

Zombie Revolution

Zombie Revolution

Zombie Revolution

Amid the zombie craze, it’s not often that we get to assume the role of the opposite side, so Zombie Revolution brings the premise a neat refresh since you play as the zombies instead of us humans.

As the leader of the zombie revolution, you must muster your forces and attack the annoying humans on the opposite side of the river. Why? Because brains. Actually, it’s because they’re putting flowery stuff in your water and zombies prefer dirty things. Who knew? Gameplay consists of building structures in your town and training zombies, researching upgrades, etc. and then attacking new sections of the map with your newly created forces.

There are 6 zombie types that you can mutate your warriors into, and 4 different types of humans to kill with them. For folks who want a more patient take on the zombie story with the roles reversed, Zombie Revolution has a lot to offer, especially for the fine price of free.

Price: Free
Developer: Digital Chocolate, Inc.
Download: App Store

DJ Rivals

DJ Rivals

DJ Rivals

In the unusual category, DJ Rivals offers a fresh and fun story that puts you in the stylish shoes of a DJ trying to save Nightclub City from the evil Bland Corporation. It’s an RPG at heart, but the battles are replaced with DJ-style mini-games that range from Guitar Hero beat tapping to scratching and more.

The story is told through excellent cinematics, and one of the neatest features is the ability to enable location services to battle at “real” places in your neighbourhood. Despite the MMO and RPG tendencies though, it’s clearly the rhythm game aspects that are the most emphasized, and with good reason since they’re fun, well polished, and appropriate for the story.

With 50 moves, 50 collectibles, and 9 bosses to defeat, you’ll have your hands full for a while with this one. Check it out if you like your rhythm games with a bit of brain and progression.

Price: Free
Developer: Booyah, Inc.
Download: App Store

KartRider Rush

KartRider Rush

KartRider Rush

If you’re one of the more than 230 million (!!) players familiar with KartRider in its online form, then you hardly need an introduction here. If you’re not among those folks, KartRider is essentially like Mario Kart except online and, obviously, now on the iOS platform. This platform change seems to have happened to replace the American online version of the game which disappeared in 2008.

Regardless, KartRider Rush is a cheerful and energetic racing game with cartoony visuals, catchy music, and very simple controls. You tilt to steer, and there’s a button for braking and for drifting (sliding around corners to gain a speed boost). Acceleration happens automatically, which means you can focus on driving and on dealing with your opponents. In the game’s Speed Mode, your goal is to drift as much as possible to collect nitro and get ahead, but the Item Mode is where things get really familiar: you’ll be collecting and using special items to impede and attack your fellow racers, just like in Mario Kart.

There are very few other games out there that capture the spirit of kart racing as nicely as KartRider Rush on the iOS, and the fact that you can enjoy this bit of nostalgic gaming for free makes for an excellent deal.

Price: Free
Developer: NEXON MOBILE
Download: App Store

Squidy

Squidy

Squidy

Our final pick is an adorable little puzzle game that asks the question: if you were a squid living in a canyon, what would you do to return to your aquarium? If you answered “detonate impressive amounts of dynamite under in my vicinity to launch myself in the direction I need to go” then you have just found yourself the perfect game.

Having spoiled the premise for you, all that’s left to say is that while the physics sometimes feel a bit too forgiving, the art design is beautiful and the gameplay itself is fun and addictive. The challenge ramps up nicely and although there are only 25 levels for now, more are promised in an upcoming update so there’s lots to look forward to.

Price: Free
Developer: Karma World LLC
Download: App Store

What Have You Been Playing?

There you have it: five great little games for zero dollars each! If you’re spending that cash on other important endeavours or if you’ve enjoyed one of these games (or a different one) then let us know in the comments!

Quick Look: Stereolizer

Quick Look posts are paid submissions offering only a brief overview of an app. Vote in the polls below if you think this app is worth an in-depth AppStorm review!

In this Quick Look, we’re highlighting Stereolizer. The developer describes Stereolizer as an app that turns your iPad into a 80′s stereo.

Read on for more information and screenshots!

Screenshots

screenshot

Stereolizer

About the App

Here are the top five features you can expect to see in the latest version:

  • Tuner with free access to 10000+ radios
  • Unlimited recordings (music, radio shows, …) with a vintage tape recorder
  • Play, Pause, fast-forward, rewind, … all the famous 80′s hi-fi buttons
  • Eject the tape to view, edit and delete the recordings
  • Facebook and Twitter sharing

Requirements: iOS 4.0
Price: $1.99
Developer: Lesmobilizers

Vote for a Review

Would you like to see us write a full review of Stereolizer? Have your say in our poll:

Would you like to see Stereolizer reviewed in-depth on AppStorm?online survey

Quick Look posts are paid submissions offering only a brief overview of an app. Vote in the poll if you think this app is worth an in-depth AppStorm review! If you’re a developer and would like to have your app profiled, you can submit it here.

Facebook SDK – Posting to User News Feed

What the Posts will look like!


Hello, I’m Andy Yanok (Twitter) and I recently finished working on Friended for Facebook.  Many applications use Facebook for posting content from their respective applications, there could be infinite items that a developer would like to post to users feeds whilst using their applications but today we will be focusing on posting a link to a users feed.

In order to get started using the Facebook SDK & API’s you will need to download the latest copy of the Facebook SDK for iOS.  For further reference to using the Graph and FQL API’s you can refer to Facebook’s API documentation.  As I am sure you are used to using the great documentation provided by Apple for developing your iOS applications, but you may find the Facebook API documentation to not be so great.

In order to integrate Facebook into your app you will need to create an application on www.facebook.com/developers.  After creating the application you will be provided with keys needed for accessing the API’s. There are some nice features to integrating Facebook into your application such as seeing how many people “Like” your application, and statistics about the usage of your application.

In this tutorial we will be creating a simple Facebook news feed posting application with the following features/functionality.

  • Facebook API / SDK Request Wrapper
  • News feed post class
  • Simple UI to test the code

Getting Started:

Before you can begin writing code there are a few setup steps you will need to perform to setup access to the Facebook API.

First you will need to logon to www.facebook.com/developers, and create an application.  For this tutorial you can use the keys provided in the sample project. Once you have created an application the developer page Facebook will provide you with the keys needed .

Secondly, you will need to download the source for the Facebook SDK https://github.com/facebook/facebook-ios-sdk.  You may also pull the SDK source out of the sample project provided.  Included with the Facebook SDK are JSON parsing libraries, the Facebook SDK uses these libraries to parse the incoming data from their servers. Once this is done you can start to code!

Within your xCode project you will need to include the Facebook SDK folder and the JSON parsing Library folder.

Creating FBRequestWrapper class:
This class can be used to make GET and POST requests to the API. I like using a singleton class for this, obviously whilst writing Friended we have to make many requests and this proved to be the best method for what we needed. This is a singleton class that will handle all the requests for accessing the Facebook API.

#import "Facebook.h"

#define FB_APP_ID @"197366800287642"
#define FB_API_KEY @"3269fff9ef3b6fc13255e670ebb44c4d"
#define FB_APP_SECRET @"d038b12cc8632865952f69722fe26393"

@interface FBRequestWrapper : NSObject
{
	Facebook *facebook;
	BOOL isLoggedIn;
}

@property (nonatomic, assign) BOOL isLoggedIn;

+ (id) defaultManager;
- (void) setIsLoggedIn:(BOOL) _loggedIn;
- (void) FBSessionBegin:(id) _delegate;
- (void) FBLogout;
- (void) getFBRequestWithGraphPath:(NSString*) _path andDelegate:(id) _delegate;
- (void) sendFBRequestWithGraphPath:(NSString*) _path params:(NSMutableDictionary*) _params andDelegate:(id) _delegate;

@end

In the FBRequestWrapper.h file you will need to define the keys provided when you created your application on the Facebook Developer site.

FB_APP_ID, FB_API_KEY, FB_APP_SECRET

We will be creating two class variables, one for the Facebook SDK class, and a logged in Boolean variable which holds the status of being logged in.

Moving on to the Implementation of the FBRequestWrapper. FBSessionBegin this method is being used to instantiate the facebook object if it already has not, also will be connect the application to the Facebook SDK. Within this method we pull out the stored values for the accessToken and expiration date. These values are stored in NSUserDefaults once a user has logged in, we store these so that we will not have to repeatedly need to request these values from Facebook.

Once we have that setup, we need to specify an Array of the permissions this application will be requesting. For this application we only need the “publish_stream” permission, for more information on other permissions you can refer to the Facebook API Reference. Once we have created this array with the requested permissions we call the facebook authorize method. We are specifying the delegate passed to this wrapper class as the call back for a success or failure to login, this will be discussed in detail later.

- (void) FBSessionBegin:(id) _delegate {

	if (facebook == nil) {
		facebook = [[Facebook alloc] init];

		NSString *token = [[NSUserDefaults standardUserDefaults] objectForKey:@"access_token"];
		NSDate *exp = [[NSUserDefaults standardUserDefaults] objectForKey:@"exp_date"];

		if (token != nil && exp != nil && [token length] > 2) {
			isLoggedIn = YES;
			facebook.accessToken = token;
            facebook.expirationDate = [NSDate distantFuture];
		} 

		[facebook retain];
	}

	NSArray * permissions = [NSArray arrayWithObjects:
							 @"publish_stream",
							 nil];

	//if no session is available login
	[facebook authorize:FB_APP_ID permissions:permissions delegate:_delegate];
}

Next we need to create the method that will be passing the POST requests to the Facebook API.

// Used for publishing
- (void) sendFBRequestWithGraphPath:(NSString*) _path params:(NSMutableDictionary*) _params andDelegate:(id) _delegate {

	if (_delegate == nil)
		_delegate = self;

	if (_params != nil && _path != nil) {

		[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
		[facebook requestWithGraphPath:_path andParams:_params andHttpMethod:@"POST" andDelegate:_delegate];
	}
}

In this method we are simply doing some validation, and sending the POST request to Facebook. The delegate passed to this method will be receiving the Pass/Fail response. This method will be used for all POST requests in the future. Other methods that are in the sample project are not contained in the scope of this tutorial.

Next we need to create the FBFeedPost class which will handle posting three different types of items to the users news feed. We will start by creating an enumeration to handle the 3 different types of posts that we will be explaining. We need three different post types, FBPostTypeStatus, FBPostTypePhoto, FBPostTypeLink. Once the enumeration has been completed we will create 5 properties in the class to be used, and create a delegate for a callback with the result of posting to Facebook.

#import "FBRequestWrapper.h"

@protocol FBFeedPostDelegate;

typedef enum {
  FBPostTypeStatus = 0,
  FBPostTypePhoto = 1,
  FBPostTypeLink = 2
} FBPostType;

@interface FBFeedPost : NSObject
{
	NSString *url;
	NSString *message;
	NSString *caption;
	UIImage *image;
	FBPostType postType;

	id  delegate;
}

@property (nonatomic, assign) FBPostType postType;
@property (nonatomic, retain) NSString *url;
@property (nonatomic, retain) NSString *message;
@property (nonatomic, retain) NSString *caption;
@property (nonatomic, retain) UIImage *image;

@property (nonatomic, assign) id  delegate;

- (id) initWithLinkPath:(NSString*) _url caption:(NSString*) _caption;
- (id) initWithPostMessage:(NSString*) _message;
- (id) initWithPhoto:(UIImage*) _image name:(NSString*) _name;
- (void) publishPostWithDelegate:(id) _delegate;

@end

@protocol FBFeedPostDelegate
@required
- (void) failedToPublishPost:(FBFeedPost*) _post;
- (void) finishedPublishingPost:(FBFeedPost*) _post;
@end

This class will be specifically be used for posting three different types of posts to your news feed. In this case I have created three different initialization methods for the different posts.

- (id) initWithLinkPath:(NSString*) _url caption:(NSString*) _caption {
	self = [super init];
	if (self) {
		postType = FBPostTypeLink;
		url = [_url retain];
		caption = [_caption retain];
	}
	return self;
}

- (id) initWithPostMessage:(NSString*) _message {
	self = [super init];
	if (self) {
		postType = FBPostTypeStatus;
		message = [_message retain];
	}
	return self;
}

- (id) initWithPhoto:(UIImage*) _image name:(NSString*) _name {
	self = [super init];
	if (self) {
		postType = FBPostTypePhoto;
		image = [_image retain];
		caption = [_image retain];
	}
	return self;
}

The meat and potatoes of this class is contained within the publishPostWithDelegate method.

We pass in the delegate that will be handling the response we receive from the FBRequrestWrapper class. From there we will be checking whether we are currently logged in to Facebook, if not make the Request to login via the FBRequestWrapper. If this is the first time the application is being ran for the users login they will be prompted to allow access to post to the users feed. Once the user has allowed access for the application to access the users feed they will no longer be prompted again to allow access.

Once logged in, we determine which post type we will be sending to the users feed. Each of the three different post types require specific parameters to be passed to Facebook via a dictionary.

Once the proper parameters have been set simply call:

 [[FBRequestWrapper defaultManager] sendFBRequestWithGraphPath:graphPath params:params andDelegate:self];

Whilst making the request we will be passing the delegate of the FBRequestWrapper as self, not the previously passed in delegate for the FBFeedPost class. We do this in order to handle deallocating the FBFeedPost instance after a failure or success message has been passed back from the Facebook API.

Within the FBFeedPost class we are implementing the Facebook SDK call back methods.

- (void) publishPostWithDelegate:(id) _delegate {

	//store the delegate incase the user needs to login
	self.delegate = _delegate;

	// if the user is not currently logged in begin the session
	BOOL loggedIn = [[FBRequestWrapper defaultManager] isLoggedIn];
	if (!loggedIn) {
		[[FBRequestWrapper defaultManager] FBSessionBegin:self];
	}
	else {
		NSMutableDictionary *params = [[[NSMutableDictionary alloc] init] autorelease];

		//Need to provide POST parameters to the Facebook SDK for the specific post type
		NSString *graphPath = @"me/feed";

		switch (postType) {
			case FBPostTypeLink:
			{
				[params setObject:@"link" forKey:@"type"];
				[params setObject:self.url forKey:@"link"];
				[params setObject:self.caption forKey:@"description"];
				break;
			}
			case FBPostTypeStatus:
			{
				[params setObject:@"status" forKey:@"type"];
				[params setObject:self.message forKey:@"message"];
				break;
			}
			case FBPostTypePhoto:
			{
				graphPath = @"me/photos";
				[params setObject:self.image forKey:@"source"];
				[params setObject:self.caption forKey:@"message"];
				break;
			}
			default:
				break;
		}

		[[FBRequestWrapper defaultManager] sendFBRequestWithGraphPath:graphPath params:params andDelegate:self];
	}
}

#pragma mark -
#pragma mark FacebookSessionDelegate

- (void)fbDidLogin {
	[[FBRequestWrapper defaultManager] setIsLoggedIn:YES];

	//after the user is logged in try to publish the post
	[self publishPostWithDelegate:self.delegate];
}

- (void)fbDidNotLogin:(BOOL)cancelled {
	[[FBRequestWrapper defaultManager] setIsLoggedIn:NO];

}

#pragma mark -
#pragma mark FBRequestDelegate

- (void)request:(FBRequest *)request didFailWithError:(NSError *)error {
	[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
	NSLog(@"ResponseFailed: %@", error);

	if ([self.delegate respondsToSelector:@selector(failedToPublishPost:)])
		[self.delegate failedToPublishPost:self];
}

- (void)request:(FBRequest *)request didLoad:(id)result {
	[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
	NSLog(@"Parsed Response: %@", result);

	if ([self.delegate respondsToSelector:@selector(finishedPublishingPost:)])
		[self.delegate finishedPublishingPost:self];
}

Once either Facebook has returned a success message or failure we will call the FBFeedPost’s corresponding delegate methods with a parameter of self so we can handle the memory management necessary after we have finished posting to the users feed.

Now that this class is implemented we can easily use this class! Within the sample project you can see all three post type examples. To Post a status to your feed, all you need to implement are the FBFeedPost Delegate methods and creating the request.

- (IBAction) btnPostPress:(id) sender {

	[self.txtView resignFirstResponder];

	//we will release this object when it is finished posting
	FBFeedPost *post = [[FBFeedPost alloc] initWithPostMessage:self.txtView.text];
	[post publishPostWithDelegate:self];

	IFNNotificationDisplay *display = [[IFNNotificationDisplay alloc] init];
	display.type = NotificationDisplayTypeLoading;
	display.tag = NOTIFICATION_DISPLAY_TAG;
	[display setNotificationText:@"Posting Status..."];
	[display displayInView:self.view atCenter:CGPointMake(self.view.center.x, self.view.center.y-100.0) withInterval:0.0];
	[display release];
}

#pragma mark -
#pragma mark FBFeedPostDelegate

- (void) failedToPublishPost:(FBFeedPost*) _post {

	UIView *dv = [self.view viewWithTag:NOTIFICATION_DISPLAY_TAG];
	[dv removeFromSuperview];

	IFNNotificationDisplay *display = [[IFNNotificationDisplay alloc] init];
	display.type = NotificationDisplayTypeText;
	[display setNotificationText:@"Failed To Post"];
	[display displayInView:self.view atCenter:CGPointMake(self.view.center.x, self.view.center.y-100.0) withInterval:1.5];
	[display release];

	//release the alloc'd post
	[_post release];
}

- (void) finishedPublishingPost:(FBFeedPost*) _post {

	UIView *dv = [self.view viewWithTag:NOTIFICATION_DISPLAY_TAG];
	[dv removeFromSuperview];

	IFNNotificationDisplay *display = [[IFNNotificationDisplay alloc] init];
	display.type = NotificationDisplayTypeText;
	[display setNotificationText:@"Finished Posting"];
	[display displayInView:self.view atCenter:CGPointMake(self.view.center.x, self.view.center.y-100.0) withInterval:1.5];
	[display release];

	//release the alloc'd post
	[_post release];
}

Posting to Facebook is easy as that! You can find all the code from this tutorial in the sample project .

Using Git Versioning inside your XCode Project

This tutorial will show you how to automatically fill in CFBundleVersion and CFBundleShortVersionString, when using Git.
This has been tested in Xcode 3.2.5

Git Setup
First off you need a project that is checked into git, and is also tagged with an initial version number.

If you already have git setup for your project, skip down to XCode Setup

To locally setup up git, without a remote repository, after installing git, issue the following commands
cd into your project directory
and type “git init”
create a file in this directory called “.gitignore” and add the following lines to it

# xcode noise
build/*
*.pbxuser
*.mode1v3
xcuserdata
 
# auto git version noise
InfoPlist.h
 
# old skool
.svn
 
# osx noise
.DS_Store
profile

Then you can type:

git add *
git add .gitignore
git commit -a -m "Initial Version"

To make the first commit.

Type the following to give us our initial version tag

git tag -a "0.0.1" -m "Version 0.0.1"

When tagging, for this script to work, you should be using the form X.Y.Z, where X,Y, and Z are all numbers.

XCode Setup
Now that we have a local Git Project, or if you are already used to git and skipped to here, we can set up our project to auto generate our CFBundleVersion and CFBundleShortVersionString

Right click on Targets, and select Add -> New Target
Choose Shell Script Target
Enter a name. I chose GenGitVersion
Close the Target “GenGitVersion” Info screen that popped up, and expand the GenGitVersion under Targets in the Groups & Files view.
Double click on Run Script to open the “Run Script Phase for “GenGitVersion” Info” Screen.

Paste the following into the “Script” Section

Change Info.plist to the name of your Info.plist, and also the git= string to the location of git on your system.
This script will use the “git describe” command to take the name of the latest tag you have committed of the form 0.0.0 and create a short version string of the form 0.0.1-X-abcdefgh-dirty, where the 0.0.1 is the latest tag, -X is the number of commits since that tag, and the -dirty is whether you have committed all your latest changes or not. The version string created by this script will just be the latest tag name, for example 0.0.1.

If you used my .gitignore, then you already have InfoPlist.h added, otherwise add InfoPlist.h to your .gitignore
Right click on your main Target and choose Get Info
Under the General Tab, you want to add the GenGitVersion Target as a Direct Dependent of your main Target
You would do this by clicking the + sign under the Direct Dependencies section and choosing GenGitVersion, and then clicking Add Target.

Under the Build tab, you also need to select, Under Packaging, the checkbox for “Preprocess Info.plist File”, and right above that make sure to enter in InfoPlist.h as the “Info.plist Preprocessor Prefix File”

The last thing you need to do is change your Info.plist file to use the following for CFBundleVersion and CFBundleShortVersionString
CFBundleVersion = APP_VERSION
CFBundleShortVersionString = GIT_VERSION

Now when you use the following in your application, you will have git populating the strings, based on the version numbers of the latest tag and commits.

NSString *shortVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
NSString *version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
 
NSLog(@"Short: %@", shortVersion);
NSLog(@"Version: %@", version);

A Sneak Peek At TweetMapper

TweetMapperIcon


Devotees will remember that last year the team over here at iCodeBlog released a little iPad app called TweetMapper that showed a live stream of tweets coming down from 10 major cities. Well since then Twitter deprecated its support for XML and increased its support for better searching. As a result about a month ago we dusted the project off and went at completely rebuilding it. We added Core Data in, support for the now current streaming JSON output from Twitter, the ability to define custom locations (Up to 25, as big as you want), and a whole bunch of other stuff. We’ll be getting it into the store soon, but for now we have a demo video together. Take a look and watch for it’s release in the App store for iPad and iPhone in the next couple of weeks. Thanks for reading!

Tweet Mapper by ELC Technologies Demo from Collin Ruffenach on Vimeo.

Benchmark Your Network with SpeedTest for iPhone

I know why your calls keep dropping. In fact, I know why your Youtube videos won’t load fast enough. I know this because I’m using SpeedTest for iOS, a utility that lets me benchmark how fast data is being transferred over either Wireless or 3G. Within seconds, I can tell if my internet service provider is giving me the speed I’m paying for. I can also use SpeedTest for iOS to see exactly how fast AT&T’s 3G data network is, instead of just taking their word for it.

SpeedTest for iPhone is a version of SpeedTest.net, a trusted website in pinpointing how fast your internet speeds are versus the speeds of other users. SpeedTest is a fantastic tool when you’re trying to figure out why your videos load slowly, or why the internet just seems to feel laggy. Whether you are streaming a Netflix movie and not getting the speed that you’d like or playing an online game and noticing that your game is lagging alot on multiplayer, with the push of a button, you have the real results of your network speed.

SpeedTest makes it easy to get results on your network speed.

SpeedTest makes it easy to get results on your network speed.

The Three Crucial Factors

When using sites like Youtube, uploading photos to Flickr, or generally browsing the web; you are depending on three different speeds to deliver a fast connection. The first factor is ping, which is used to measure how long it takes for a packet of data to travel from your computer to the selected internet server. The smaller the ping time, the better.

The next factor in your overall web speed is download speed. This is by far the most advertised number by your Internet service provider. Internet service providers like Comcast and Verizon usually offer tiered Internet, which is based on the download speed that you get. The higher the speed, the faster your computer will download files. The average speed for a high speed internet provider is around 20Mbps. Mbps means Megabits per second, which translates to your computer downloading 2.5MB of a file (Megabytes) every second. That means a 1GB file will take almost 7 minutes to download.

The last factor in overall speed is upload speed. Upload speed determines how fast your computer can send information to a remote server. This is important for when you’re uploading large files like pictures or movies to a website. This is usually significantly lower than your download speed. Most service providers have slower speeds for upload which might be the cause of extremely long waits when uploading a video to YouTube.

Running a test from SpeedTest will allow you to pinpoint the speed of your Internet. A 5Mbps Internet connection will take about 30 minutes to upload a 1GB file. A 10Mbps connection will only take 15 minutes to download a 1GB file.

SpeedTest Wherever You Are

View other information such as Internal IP, External IP, or geological location.

View other information such as Internal IP, External IP, or geological location.

Now that you know how extremely useful speed tests can be in troubleshooting a slow Internet connection, you probably want to run a few! Now, you could just open SpeedTest.net on a computer, but what if you want to easily compare results and always be able to run tests without depending on a computer? Then look no further than SpeedTest for iOS. It uses the same powerful features as the SpeedTest web interface, formatted for a portable device.

To begin, open up the app and tap “Begin Test” and it will start calculating your Ping, Download Speed, and Upload Speed. Within a minute, you’ll have real results on how fast your network is currently transferring data. SpeedTest saves your results, making it easy to look back and compare speeds. It even can display two different icons for whether you tested it over WiFi or 3G.

Using Speed Test, I was able to determine that AT&T is giving me 1.77Mbps download and 0.75Mbps upload. SpeedTest also lets you know your current Internal IP, External IP, as well as your approximated location. Finally, SpeedTest lets you convert from Kilobytes to Megabytes so you can accurately determine how long it will take for you download a large file.

View previous tests results and even export them to a CSV file for later use.

View previous tests results and even export them to a CSV file for later use.

Conclusion

SpeedTest is an amazing tool to have on your iPhone or iPod Touch. Its simple interface makes it incredibly easy to start a speed test and troubleshoot your network. The next time a neighbor complains about their Internet being too slow, show them SpeedTest for iOS and start testing away.

With hundreds of available servers for testing, you can always find the closest server that gives you an extremely accurate result for your Internet speed. SpeedTest works efficiently and looks great while doing it.

360 Web Browser – Desktop Class Browsing on iPhone

It’s often the hardest to convince yourself to pay for an app that’s very similar to another free app. That’s a big reason why most iOS users just stick with Mobile Safari for browsing from iPhone or iPod Touch; it’s included with their device for free, and just works. If it’s not broke, don’t fix it, right?

For everything that it does well, though, Safari is still pretty lacking. It’s great at rendering standards compliant sites, and even works decently to switch back and forth between several pages. But start trying to multitask between multiple sites and Safari’s shine starts to wear off. Web browsing on iPhone feels so similar to browsing from your computer, it’s easy to start using it more like it’s a computer until you’re frustrated that Safari is reloading sites each time you switch pages and can’t do things you’ve done for years in a normal browser such as viewing the source of a site.

Clearly, a better solution is needed. While all browsers on the App Store have to use the built-in Webkit rendering and Javascript engine, many designers have set out to improve on Safari within these constraints. Today, we’re going to look at 360 Web Browser, a newer alternative browser app that packs tons of features into a mobile browser. With a bold look and more features than we could possibly cover in a review, it’s definitely one interesting browser. Keep reading to learn more about it.

Getting Started

Browsing the web, even from a mobile device, is so simple nowadays that we do it without thinking. 360 Browser includes more features than your average mobile browser, though, so before you start browsing you can flip through the included guide to view its most popular features.

360 Browser: A bold interface that still feels intuitive

360 Web Browser’s icon and interface didn’t stand out to me at first, but don’t worry if you don’t find them attractive. The browser’s main interface looks much like Mobile Safari, only with a tab bar and extra buttons on the bottom.

The good news is, browsing is incredibly snappy. 360 Web Browser handled multiple tabs and rich sites with ease, and didn’t reload pages when switching between tabs. If you were only looking for a tabbed browser that worked as good as Safari, you could use the app just like you would any other browser and you’d be fine.

As you’re using 360 Browser though, you’ll likely start noticing some significant differences. Tap and hold on links and images, for example, and you’ll see a popup with options that look more like a right-click menu on a computer. Now, just swipe your finger down to the option you want, and you’ll have your other page loaded in a new tab or bookmarked quicker than you could in Safari.

Browsing in 360 has a more desktop feel, complete with mock right-click menus

Browser, Meet Multitouch

360 Browser’s most unique feature is the arc menus. Tap the circle button in the middle of the bottom bar to open it, then drag your finger up and select the option you want. You can’t just open the arc menu and then select an option; you have to tap and drag to the option you want in one motion. This is a quick way to increase the font size or bookmark a page in one tap.

Plus, in full-screen mode, the arc menu gives you even more options so you can take advantage of tabbed browsing while maximizing your screen space. You’ll have to play with the arc menus for a while to get used to them, but after awhile, it’s almost like using a Swype keyboard.

Arc menus offer quick access to features

You can also use multitouch gestures to navigate between pages and more. Similar to mouse gestures in Opera and several popular plugins for other browsers, you can swipe with two fingers to switch tabs or go to previous pages. You’ll find settings for each gesture in the browser settings menu, or just try out the different gestures to see how they work for yourself.

Gestures in browsers finally make sense on a touch screen

Taking Your Mobile Browsing Further

Even though 360 Browser already pushes the envelope with its included features, it doesn’t stop there. Just like in Chrome, Safari, or Firefox on your computer, 360 Web Browser lets you add even more features with addons.

Tap the gear button and select Add Plugins to get started. You can choose from a variety of prebuilt plugins that let you view a site’s source, translate it, save it to Instapaper, and more. Tap the plugin for more info, then install it if you wish.

Plugins in a mobile browser? You bet!

Now, to access your plugins, press the gear button and select Plugins. This time, you’ll see a small bar on the bottom of the page with your plugins. Tap the one you want to run. Here you can see the source code of http://techinch.com/ right on my iPod Touch. If you’re a web developer or are just curious about how sites are made, you’ll likely find this one plugin extremely useful.

View site source, save to Instapaper, and more via plugins

Another very useful included feature is the offline pages mode. Tap the gear icon and select Offline Pages to open pages you’ve already saved, or press the plus button on the offline pages bar to save the current page. This is a great way to make sure you can read the sites you want on the go, even if you don’t have an internet connection.

360 Browser also lets you download other files to access later, though sadly, this was one area the app didn’t work quite right. You can theoretically view flash videos and save them through 360 browser, but most sites didn’t work with it and the ones that did offered html5 videos already. We tried to save documents to the downloads folder, but they simply opened in a new tab.

Download sites or files … just make sure that's the actual file you want

Tweaking 360 Browser

With many features come many settings, and 360 Browser includes a ton. The gear menu gives you quick access the the things you’ll need the most, but to tweak the browser further, select Settings. Here you’ll be able to choose the user agent, set a default search engine, lock rotation, and more.

Want settings? 360 Browser has settings galore.

The browser also includes several free themes that you can preview and apply if you don’t like the default look. There are also a couple of paid themes you can buy with an in-app purchase if you wish. I personally liked the default interface, which is almost like a darker version of  Mobile Safari’s UI, but if you’re one that likes to personalize everything, there’s plenty to choose from here.

There's a 360 style for everyone!

Conclusion

360 Web Browser just may be the iOS browser with the most features. I was impressed at how good they integrated everything and made the app feel simple to use even with a barrage of options. It provides a much more desktop-like browsing experience than most other apps, and handles multiple pages great. Plus, if you have an iPad, you’ll be able to use 360 Browser on it with their upcoming Universal update.

What browser do you use on your iOS device? Have you switched to 360 Browser or another browser app, or just kept on using Safari? Let us know in the comments!