iSmoothRun: Take Your Running Further

I’m a casual runner. It’s a sport that I’ve picked up and let fall many times in the course of my life. At the moment, I’m enjoying probably the most sustained period of regular running that I’ve so far managed. I do want to emphasise that: enjoying this past year of regular workouts really has been rewarding and fun.

I began this period with my iPhone, using the excellent Get Running app to get from my couch to running 5k in a few months. And then I wanted to keep track of my runs and tested a few different apps, including Nike+ GPS and Runmeter, before settling on Runkeeper back in January of this year. And I’ve stuck with Runkeeper, paying up to become an Elite member (which adds a few features and lets you sign up for half-price fitness training courses).

When Runkeeper opened up their API earlier this year, it became possible for outside developers to interface with their services. Today I’m going to be exploring one app that’s taking advantage of that capability, Lake Horizon Ltd.’s iSmoothRun ($4.99). Join me after the jump to check it out.

On Your Marks, Get Set …

The first thing you’ll see when you start up iSmoothRun is the New Run page:

Where it all begins...

Where it all begins…

This page is a doorway to the app, and from it you can set up your activities exactly as you need. From the Activity menu you can select from Running, Trail Running, Walking, Hiking, Cycling or Mountain Biking. The Workout menu lets you select from a number of built-in workouts — challenging yourself to run to a specific distance, for a set time, or until you’ve burned a particular number of calories. Here you can also add you own workouts, including intervals, which is great if you’re into Fartlek or other variations on interval training. The interval editor allows you to be quite specific in setting up your parameters.

Fine-tune your interval training here.

Fine-tune your interval training here.

The Weight setting, of course, is where you enter your weight — this information is used, along with other details you can input in your user profile, to estimate the calories burned during your workouts.

You can use the Shoes menu to keep track of the mileage you’ve completed in your running shoes or on your bicycle, so I can see that I’ve completed a little over 330 miles in my New Balance shoes in the last 9 or 10 months.

The final menu item, RunKeeper Live, will only work if you are a RunKeeper Elite member. This is a live tracking feature that allows you to broadcast your workouts to your RunKeeper page so that others can keep track of where you are — if you’d like to know more about it, you can read more in this post on the RunKeeper blog. This has been handy a few times when I’d taken longer than expected coming home, and my wife was able to check online to see where I was at.

… Go!

When you hit Start your run, the screen changes to the in-run display:

Right at the start of a new run

Right at the start of a new run

Here you can see live feedback on your progress: time, pace, cadence, distance, calories burned. Tapping the Map button will show your map position.

The settings on this view seem to be the only way to access what could be a very useful feature: the metronome. This is useful in working with your running cadence (I’d not heard of cadence before I started using iSmoothRun, and it’s been difficult to find good information online, but the idea is that increasing the number of steps you take per minute can improve your running speed). I found fumbling through these settings difficult with the phone strapped to my arm, and would have preferred to be able to set the metronome running before I got started.

In-run audio cues in iSmoothRun are clear and don’t sound as mechanical as the RunKeeper app’s announcements. They’re configurable, so that you can choose to hear updates on your pace, cadence, time, distance, average workout pace, and — if you have a Wahoo Fitness adaptor and a compatible sensor (I don’t, but would love to try one!) — heart rate. You can also set whether announcements are time or distance triggered.

Run History

The Log page keeps a record of your past runs.

Your workout history is in the Log.

Your workout history is in the Log.

The icon at top right (is that an index card?) allows you to filter by activity. Tapping on a particular run brings up more details:

All your workout details recorded

All your workout details recorded

The Feeling line is one you set at the end of your run, before saving the data. Tapping Ghost Run at this point will allow you to compete with the recorded run, which is a great way to test yourself against your past achievements.

As you’d expect, Continue allows you to carry on with the run if you were previously interrupted — I’m sure there are circumstances in which this would be useful. Certainly, one of the frustrations I had with the RunKeeper app is that I managed to accidently hit the Stop button on a number of occasions (it can be a bit difficult to hit the Pause button accurately when you have your iPhone strapped to your arm!). So being able to resume a mistakenly-stopped activity would be useful to have.

The Export button allows you to send your runs by email. These arrive as a simple text email with the information summarised on the run details screen, along with attachments in .csv, .kml, .gpx and .tcx formats, which allow you to import and view your run data in various Mac and PC desktop training logs. And it’s also kinda cool to open the the .kml files in Google Earth and watch as the viewpoint sweeps in from space to display your route. This is also where you can send your runs to a number of social exercise networks: Daily Mile, RunKeeper, RunningFreeOnline, TrainingPeaks or TribeSports. I only have experience of the first two of these, and the integration works excellently.

Map, of course, show you a map of your route. This includes the colour-coded pace information with which users of Nike+ GPS will be familiar:

Your route, recorded and colour-coded for speed.

Your route, recorded and colour-coded for speed.

Cool down

I feel there’s still quite a bit to be said about iSmoothRun: it really is pretty comprehensive and covers just about everything one could hope for from a workout app. But I want to start to slow down now, as I approach the end, and so here are a few observations and issues.

One thing that I miss in iSmoothRun is the ability to control my music from within the app — none of the other apps I’ve so far used had this capability either (though Kinetic GPS, which I’ll be reviewing here soon, does), but I’m coming to feel that this really is a useful feature. I like that you can choose to have your music pause or duck into the background during audio cues, as I often missed bits of audiobooks while running with RunKeeper, which has no equivalent setting.

I encountered discrepancies between iSmoothRun’s records of run distance and those that appear in RunKeeper. These are usually quite trivial, but sometimes have been larger. Take the run I did last Tuesday: it’s recorded in iSmoothRun as 4.03 miles, but shows in RunKeeper as 4.04 miles. There have been larger differences: what’s interesting about this one is that I was also wearing a Garmin Forerunner 110 sports watch, which measured the distance as 4.07 miles. I posted a question about this to RunKeeper’s forums, and a few others joined in with similar issues. The developer posted a response, explaining that these discrepancies are due to the form in which RunKeeper expects location data to be recorded.

That explanation points to a second issue: the GPS lock seems to be slower than in other running apps. I’m not sure how this can be so, but it seems that even if you have the app open as you approach the start of your run, it won’t actually lock on until a few seconds after you press the ‘Start your run’ button. I’ve also had the app lose GPS signal once or twice while running — I can’t say for sure that this hasn’t happened with any of the other apps I’ve tried, since they don’t announce their GPS status in the way that iSmoothRun does.

Conclusion

These few issues aside, I’m very pleased with iSmoothRun, and it’s certainly displaced RunKeeper as my go-to running app. I love that it interfaces with RunKeeper, so that I can continue using the web service that I’m used to and enjoy. It’s elegantly designed and very comprehensive, and its inclusion of cadence, in particular, makes it a great option if you’re a serious runner. As I said, I’m not, but I feel that iSmoothRun is helping me to take my running that little bit deeper and farther.

iHome+Sleep: A Feature Packed Alarm Clock

Can I just be honest about something? Alarm clocks are so way behind the times and I wish they would catch up with the technology that is out there. Thus, the reason why I started the search for a good alarm clock app to use on my iPhone. I really didn’t know what exactly I was looking for, but I wanted something that was a heck of a lot better than the digital alarm clock that I had in my room.

I decided to give out the iHome+Sleep app a try to see if it could actually work as my regular alarm clock. It has a ton of features, some of which that I felt were useful, and the best part of it all was that it was free. And to make it even better it’s a universal app, meaning that it was optimized for both my iPhone and iPad. Want more? Hit the jump to find out.

Navigation

When you first get to the home screen there really is a lot going on. At the top, you can set the weather for your current city and see the weather for the next couple of days. In the middle, you see the current time and a music button, which tells you what song will be playing when you get up in the morning. Then below that, you see a slider with either Bedtime or Wakeup. This slider functions as a way to log your sleep, which the app does a good job of helping you monitor.

Home Screen of App

Home Screen of App

Alarm Settings

When it comes to setting an alarm on this app, there is no shortage of options. You can set it for a specific time and a specific day, but you can also set an alarm for a nap as well. The difference is the nap alarm is set by alerting the app that you want to wake up in a certain amount of minutes, instead of a specific time. Your other options are to have the alarm repeat during specific days of the week, and you can also set a snooze duration.

You are also given some sleep and wake options to choose from. You can choose music to sleep to and the option of when the music should go off as well as music or an alarm sound to wake up to. The one thing that I couldn’t quite figure out is that it seemed like I couldn’t pick a certain song to wake up to — I just had to go with whatever song was picked for me. I tried to search throughout the settings for this option, but saw none.

Some of the settings for the alarm

Some of the settings for the alarm

Another nice option in the alarm settings is the reminders. You can set a reminder for yourself right before you go to bed or when you wake up in the morning. For example, if you don’t want to forget to take out the trash in the morning, you can write that as your reminder and you will get a push notification in the morning when your alarm goes off.

Creating reminders for bedtime or when you wake up

Creating reminders for bedtime or when you wake up

And of course, no alarm setting is complete without some social media aspect to it. From within the app you can tweet out or send out a Facebook post about the time you are going to sleep or the time you are waking up.

Social media options

Social media options

Stats

A cool option in this app is the stats that are collected. They range from how many snooze cycles to the hours of sleep that you get. You are also shown your average hours of sleep and the amount of hours you have slept since using the app previously. The last stat you will see is the sleep and wake time for each day that you use the application.

Sleep Log Features

Sleep Log Features

Other Cool Features

There are a couple of other settings that are worth mentioning. You have the option to change the home screen background with images that are in the app or pictures that you have.  The second feature is what is called Overnight News. If you set up your Twitter and Facebook on the app you can get the option to view your tweets and Facebook posts that you missed while you were sleeping. That’s a handy feature to have.

Tweets from overnight

Tweets from overnight

Conclusion

As you can see, the app itself is packed with lots of features. The best part of all is the fact that the app is free and it’s also a universal iOS app. It is worth mentioning that the iPad app looks nice and has the same features as the iPhone app does.

Overall, this is a very solid application. If you are looking for an alarm clock app that packs in some great features, then this is the one for you. At the same time, I can see how the many options could overwhelm someone who wants a simple alarm clock app, but for the low price of free, you really can’t go wrong. My advice is to try it out and play with it for at least a week, then make a decision if you like it or not. I know at first it was a little overwhelming for me, but the more I used it, the more I liked it and the extra features that it provides.

Best of AppStorm in August

We’ve collected the top four reviews, roundups and how-to articles from across the AppStorm network in August. Whether you’re interested in Mac, iPhone, iPad, Web, or Android apps, there’s bound to be something you didn’t spot over the course of the month. Now would be a good time to explore a part of the AppStorm Network you’ve never seen before!

Thanks for reading AppStorm, and I hope you enjoy looking over some of our favourite posts from last month!

Best of iPad.AppStorm

The iPad: A Student’s New Computer?

The iPad: A Student’s New Computer?

The newly refreshed Macbook Air is the best laptop Apple has ever devised for students. Even the lowest end model, with its paltry (by current standards) 2GB of RAM, would be fine for most students I know. Add the Air’s ridiculously fast SSD into the mix, and you’ve got a seriously slick machine.

But wait, what other Apple product is impossibly thin, has flash-based storage, and is super fast? The iPad, of course.

15 Essential iPad Apps for Students

15 Essential iPad Apps for Students

Student life can be daunting; assessments, deadlines, classes, exams and maybe even a social life. It doesn’t have to be this difficult though. The iPad is naturally a great productivity tool and, loaded with the right apps, it can be your best weapon for surviving education.

Most of these apps cost less than a pint of your favourite beer and will increase your productivity leaps and bounds, saving you countless hours of otherwise wasted time. Start reading now and learn how to ensure you never miss a deadline again!

WriteRoom: Getting iPad Writing Right

WriteRoom: Getting iPad Writing Right

The iPad is a great platform for consuming various kinds of media, from books and films, to news and games. But working on the iPad, and for me that mostly means writing, has been something less than a stellar experience.

Read on to find out how WriteRoom manages to overcome the iPad’s operating quirks in clever and thoughtful ways that make it much more attractive as a serious writer’s tool.

Making a Podcast With GarageBand for iPad

Making a Podcast With GarageBand for iPad

With GarageBand installed, an iPad is a powerful and portable tool for musicians. However, just like its desktop version, GarageBand for iPad can also be employed by non-musicians too, as I’ll highlight with a step by step guide to making a podcast on your iPad, complete with accompanying music.

This How-To will be aimed towards those who have a basic understanding of GarageBand, or at least the principles behind music software in general, but I will endeavour to keep each step as beginner friendly as possible. If you have any questions or problems, please let us know in the comments and I’ll attempt to help you through it.

Best of Android.AppStorm

Samsung’s Galaxy Tab 10.1 Review: It’s Out of This World

Samsung’s Galaxy Tab 10.1 Review: It’s Out of This World

It may surprise you to learn that I’m a big tech nerd. I love my devices and I like to upgrade when I can. Back in October, I picked up an iPad (first gen), admittedly knowing it was probably poor timing. While it was the best on the market at the time, I figured that in 4-6 months time some new ones would hit the market. I used it for a while but wasn’t really impressed with it. Aside from some nice apps, it was pretty heavy, and generic as far as UI goes. I couldn’t find a great use for it. When the Samsung Galaxy Tab 10.1 was announced in May I knew that it was my next tablet. I went out and bought it last week and was excited to see how it would measure up compared to my personal hype.

Smart Tools: Your Portable Toolbox

Smart Tools: Your Portable Toolbox

How often have come you across a situation where a scale or compass was a necessity? Not often, I know. But at times, there might be an odd job and you might have to measure the length of something or check if the angle of a furniture is right. A scale and a protractor are not the tools one would carry in his pocket these days — but almost all of us carry a mobile phone.

12 Great Sources for Your Coffee Time Puzzle Break

12 Great Sources for Your Coffee Time Puzzle Break

Remember the time when crossword puzzles and sudoku mornings meant newspapers? In fact, remember newspapers? Like most good things, these puzzles have also made their way to the smartphones and are in many ways better than their printed counterparts. When was the last time you kept score of your timing on the kakuro sprints? Let’s look at a few notable tree savers that give you just one more reason to get your Android out in the morning.

Credit to MiniSQUL for the crossword photo.

HTC Sensation: A Review of HTC’s New Beast

HTC Sensation: A Review of HTC’s New Beast

HTC were actually late comers to the Dual-Core game, which is unusual for the company that has a reputation for being first to everything (Android and 4G in USA to name a few), but will their entry, the HTC Sensation, be worth the wait, or have they too entered the market purely for publicity? Read on for the review.

Best of iPhone.AppStorm

The Hit List for iPhone: Worth the Wait?

In my never ending search for the ideal GTD system, I’ve tried out dozens of apps for both the Mac and iPhone. Early in my search, I came across The Hit List, and found myself very impressed with its stylish but casual interface and its complete, customizable feature set. Like many other users, I patiently waited for the promised iPhone companion app, only to realize that development on the whole project had apparently come to a halt.

Now, over two years later, developer Andy Kim has finally released version 1.0 of The Hit List for Mac, and the much anticipated iPhone app. Was it worth the wait? Read on to find out!

45 Unique iPhone Home Screens Explained

Last week we asked you to show us your iPhone’s home screens, and the response was overwhelming. So much so that we decided to show off as many home screens as possible by packing it into one big roundup.

Now, of course, there are a few duplicates here and there, but we did our best to trim it down and make the list a bit more manageable. Thanks to all of you who submitted your home screens, and hit the jump the check them out!

HQ: the Stunning Way to Manage Tasks

To-do lists are inherently boring. They’re really nothing more than a bunch of items that you want to get done at some later point, be it three hours from now or next week.

HQ, the inaugural app from Sleeping Giant Apps, aims to change that. It tackles the issue of list keeping with one goal: to provide excellent functionality within a stunning, easy-to-use interface.

Steve Jobs: A Thank You

It’s always hard when a member of your family moves on, and today, that’s how we here at AppStorm feel about Steve Jobs. No, we’ve never technically worked alongside the legend, but because we’ve written about him for the past few years, most of us feel this personal connection to the man that’s been the driving force behind Apple. And it’s hard not to, because he’s been in our lives for so long now.

And now, it’s time that we say goodbye to Steve, as he’s stepped down from the CEO position at Apple, to his new position as Chairman of the Board. But this isn’t Steve’s eulogy — no, he’s got too much life in him for that. This is a celebration of all things Steve, and our own way of saying thanks to the man who helped us do what we love to do.

Best of Web.AppStorm

Read Your Kindle Books Online With Kindle Cloud Reader

Amazon blazed the trail for eBooks with their Kindle platform, starting with the original Kindle device and the Kindle store. Even if you didn’t own a Kindle, you could read Kindle books on most platforms with native apps. However, if you used a Chromebook, Linux computer, or other device without a Kindle app, you were out of luck.

That’s all over now. Amazon just released their new Kindle Cloud Reader, a full-featured Kindle web app so you can read your Kindle books right in your browser. It’s got all the features you’d expect, lets you save your books for offline reading, and even works great on the iPad. After the break, we’ve got screenshots and more info about the newest Kindle app, the app that just might be the main future of the Kindle platform.

SmartQ: Visual Project Management That Conforms to You

When it comes to project management, most web apps offer the same basic features: a group of to-do lists, some kind of messaging board, a few gigs of file storage, shared document-editing, a calendar of some sort, and if you’re lucky, a set of reports.

But what most don’t offer is the ability to develop a project-management workflow that conforms to the way your team already works, and without this customization, you lose precious time trying to get everybody up to speed on the new way of doing things. In my experience, that ramp-up time usually results in project members abandoning the app and reverting to project management by email.

Enter SmartQ.

Stay Sane Managing Multiple Accounts of the Same App

Remember waiting to get a Gmail invite, or thinking carefully about what Twitter handle you wanted? These days, it seems like most of us manage too many different accounts to keep track of. I personally have nearly a dozen active email accounts, from my college and work emails to a personal Google Apps account and a standard Gmail account I mostly use for Google+. Depending on the day, I manage 3 or more Twitter accounts, 2 Facebook fan pages, and a half dozen various WordPress accounts on different sites.

Some of these aren’t so hard to manage. For example, all of my WordPress accounts are on different domains, so they’re all unique accounts that can be logged in at once. Others, such as Gmail and Twitter accounts, can be much more tricky. Here’s some of the best ways to keep track all of your accounts without spending half of your day logging in and out of various services.

Zerply: A Professional Network Based on Skills and Passions

With over 120 million members (as of 8/4/2011) and a new-member sign-up rate of two per second, LinkedIn is the undisputed leader of the “professional” social-networking scene. Still, some people have a problem with LinkedIn’s conservative design scheme. They want something that represents the excitement and passion that comes from loving what you do.

A number of web apps have cropped up to satisfy these more design-oriented folks (see our roundup of six of them), and each creates a stylish personal-splash page that you can attach to your email signature, print on your business card, or whatever.

Zerply, a new web app that launched last month, is both the same as these “personal-splash page” apps and different from them. Let’s find out how.

Best of Mac.AppStorm

jobs

5 Industries That Steve Jobs Helped Change Forever

For the second time since its inception in 1976, Steve Jobs has stepped down as CEO of Apple Inc. According to Jobs, the day has come when he can no longer fulfill his duties. He passed the reigns to Tim Cook while staying on as Chairman of the Board and Apple employee.

Today we honor our favorite turtleneck wearing tech guru with a brief look back at his amazing career and five industries that will never be the same.

windowsappstore

The Windows App Store: Serious Threat or Business As Usual?

Windows 8 will be chock full of shiny new features, among which is of course a centralized app store. Let’s put aside our feigned shock and awe at this announcement and discuss whether or not this represents a potential threat to OS X or if it’s merely the technology industry doing what it does best: following wherever Apple leads.

utilities

30+ Awesome Utilities to Boost Your Mac’s Functionality

The Mac App Store has brought about a whole mess of new utilities that make your Mac more functional than ever.
Today we’re going to dive and find thirty particularly useful utilities that you’ll definitely want to check out and consider downloading.

uipatterns

New UI Patterns in App Design: A Blessing or a Curse?

Software design has made some interesting strides lately. It’s possible that we’re beginning to see Apple’s role in setting UI standards give way to the innovation of third party developers.

Unfortunately, this shift makes for a much more complicated scenario for developers and designers. Tempers rise, fingers are pointed and even users begin arguing about the difference between inspiration and theft. When trends are set by third party designers, is it acceptable to follow them?

Share Your Ideas

Is there something in particular you’d like to see on the site next month? We’d absolutely love to hear your suggestions for articles, topics and giveaways. Just let us know in the comments. Thanks for reading AppStorm!

Quickly Transfer Photos and Videos With PhotoSync

One of the best features of the iPhone is the built-in camera, which allows you to capture photos or shoot videos quickly and conveniently. However, once you’re ready to import your photos and videos to your computer, you’ll find that the process isn’t quite as convenient. Sure, you can upload files to Dropbox or another cloud storage service, but wouldn’t it just be easier to transfer them wirelessly to your computer?

If you answered “no” to the previous question, this article may not hold much interest for you. For those that answered with an resounding “yes,” look no further than PhotoSync. PhotoSync allows you to easily transfer photos and videos wirelessly in multiple methods, which will be discussed after the jump.

Getting Started

When you fire up PhotoSync for the first time, you’ll be greeted with four pages of instructions that give you a brief overview about how the app works. Once you tap the Finish button on the last page, a grid view of your Camera Roll will appear on the screen. By default, the app will always open the Camera Roll, which can be turned off in the settings menu.

The introductory pages will provide a basic overview of the features PhotoSync offers.

The introductory pages will provide a basic overview of the features PhotoSync offers.

The grid display should be familiar to anyone that’s used the built in Photo app, as photos and videos are displayed exactly the same (with the exception of the white background that’s been swapped out for a dark grey background).

The grid view should be familiar to anyone that's used the built in Photos app.

The grid view should be familiar to anyone that's used the built in Photos app.

Transfer From iPhone to Computer/iOS Device

Before you begin transferring photos to your computer, you’ll need to download a companion application from the PhotoSync website, which is available for both Windows and Mac OS X. Once you’ve finished downloading and installing the app, you’re ready to begin transferring your photos and videos. It’s important to note that both the iPhone and computer must be connected to the same WiFi network for the transfer to work.

The Mac OS X PhotoSync companion app can be downloaded from the Mac App Store.

The Mac OS X PhotoSync companion app can be downloaded from the Mac App Store.

PhotoSync offers multiple transferring options, which are accessed by tapping the red Transfer icon in the top right corner. A new menu will pop-up, prompting you to select an action, which includes the following choices:

  • Sync New: Syncs any photos or videos that were not present in your Camera Roll from the last time you used the app.
  • Sync Selected: Syncs any photos or videos you’ve selected by tapping on the desired thumbnails.
  • Sync All: Syncs all photos or videos in your album.
  • Mark all as synced: Marks all photos and videos as having been synced previously (unsynced photos and videos are marked by a blue-green outline around the thumbnail).
  • Receive Photos/Videos: Brings up a new screen that gives you instructions on how to receive photos and videos from a computer or other iOS device.
PhotoSync offers methods of syncing photos and videos.

PhotoSync offers methods of syncing photos and videos.

Tapping one of the first three options will bring of a second menu, which lists two options — Computer and iPhone-iPod-iPad. That’s right, you not only can transfer to a computer, but also between iOS devices (as long as the PhotoSync app is installed on both devices), which can be done via WiFi and Bluetooth®. Tapping a device will bring up a third menu, which lists all available transferring devices. Select a device and the file transfer process will begin. Once it’s finished, a folder will open automatically on your computer, containing the newly transferred files.

Once you've selected which files to sync, you'll need to perform two additional steps to finish the transfer process.

Once you've selected which files to sync, you'll need to perform two additional steps to finish the transfer process.

Transfer From Computer to iPhone

Transferring from an iPhone to a computer is great, but the ability to flip it around and transfer from a computer to an iPhone is one of the best features PhotoSync offers. To transfer from a Mac OS X computer to an iPhone, select the photos or videos you want to transfer and drag the files to the PhotoSync icon in the dock. Once you release the mouse button, a window will open prompting you to select which device you’d like to transfer your files to.

Transferring photos and videos from your Mac OS X computer to your iPhone is as simple as dragging your selected files to the PhotoSync icon in the dock.

Transferring photos and videos from your Mac OS X computer to your iPhone is as simple as dragging your selected files to the PhotoSync icon in the dock.

To transfer from a Windows computer to an iPhone, select the photos and videos you want to transfer and drag the files to the PhotoSync drag and drop area in the bottom right corner of your screen.

If the drag and drop menu is not present on your desktop, right-click the PhotoSync icon in the Notification Area and click Show Drag & Drop Area.

If the drag and drop menu is not present on your desktop, right-click the PhotoSync icon in the Notification Area and click Show Drag & Drop Area.

Transfer & Upload From Web Browser

If you don’t have the ability to download the companion app, you can still upload and download photos and videos via your preferred web browser. To do so, tap the red Transfer icon and then tap Receive Photos/Videos. In the top box you’ll be provided with a web address to enter into your browser. Once you’ve entered the web address, a menu with your photo albums will appear in your browser.

Tapping the Receive Photos/Videos button in the Actions menu will take you to a screen that will provide you with a web address.

Tapping the Receive Photos/Videos button in the Actions menu will take you to a screen that will provide you with a web address.

While in an album, you can upload photos and videos by clicking the Upload button in the top navigation bar and following the on-screen prompts. To download photos and videos, click the Select button and click on the photos you wish to download (you also have the option to download all your photos and videos). Once you’ve selected your desired file, click the Download button.

If you don't have the ability to install the companion app, you still have the ability to download and upload files from your web browser.

If you don't have the ability to install the companion app, you still have the ability to download and upload files from your web browser.

Transfer Targets

PhotoSync offers the ability to send files to popular services such as Dropbox, Flickr, Facebook, Picasa, FTP and SmugMug. To set-up these options, tap the Settings icon in the bottom right corner, and then tap the Configure button. Tapping on any of the options will take you to an authorization screen, which will prompt you to enter the necessary information. The next time you go through the transfer process, your configured services will be included in the list of transfer options.

Along with syncing to a computer and other iOS devices, you have the ability to sync photos and videos to various popular web services.

Along with syncing to a computer and other iOS devices, you have the ability to sync photos and videos to various popular web services.

Quick Transfer

A very convenient feature that PhotoSync offer is Quick Transfer, which allows you to bypass the three-menu transfer process in favor of longpressing the red Transfer icon. Doing so will quickly transfer selected photos and videos to the designated Quick Transfer device.

Setting up Quick Transfer mode is highly recommended, as it shortens the normal three-step transfer passes into one easy step.

Setting up Quick Transfer mode is highly recommended, as it shortens the normal three-step transfer passes into one easy step.

To set up your desired Quick Transfer device, head to the Settings menu and tap Quick Transfer. A familiar instructional screen will appear, prompting you to tap the Configure button.
From the Target menu, you’ll need to choose if you want to set up a transfer option for a computer or an iOS device. Tapping either option will take you to a secondary menu that lists available devices.

Quicklook Mode

One final feature worth mentioning is Quicklook Mode, which allows you to view photos and videos in the same manner as the Photos app. To use Quicklook Mode, tap the Eye icon in the bottom left corner of the screen; the screen will flip and look pretty much the same as before. If you tap on a thumbnail, the screen will transition into a full-size view of the thumbnail you selected.

Similar to the built-in Photos app, you can view photos and video individually in Quicklook Mode.

Similar to the built-in Photos app, you can view photos and video individually in Quicklook Mode.

Conclusion

When it comes to transferring photos and videos to and from an iPhone, PhotoSync is unmatched in terms of usability and functionality. If the option to delete photos and videos from the Camera Roll is added, it would be without a doubt my one stop shop for photo and video management. For the low price of $1.99, PhotoSync is a must download for anyone that enjoys snapping photos or shooting video with their iPhone.

Grand Central Dispatch And Writing Methods That Accept Blocks As Arguments

Have you ever looked at the enumerateObjectsUsingBlock method of NSArray and wondered how you might use that design pattern in your own application. In this tutorial, I will be showing you how to do just this. We will be writing methods that accept blocks as arguments as well as learning how to declare block ivars and properties.

This tutorial assumes that you have at least a basic understanding of using blocks and Grand Central Dispatch (GCD). If not, @cruffenach has created a more basic intro to blocks tutorial here if you need a refresher on them.

When You Might Want To Pass A Block To A Method

There are quite a few times when you might want to pass a block to a method. The most common reason is to replace the “delegate” design pattern. Basically, when you want to process some data (usually in another thread) and it needs to call back to the caller when it completes. This pattern is also useful when you want to have a method “return” multiple values. (Note: return is in quotes, because we are not actually returning multiple values but calling back using the block and passing multiple values).

Another great reason to use blocks in this way is it keeps your code flowing in a much more logical order. Rather than having this feeling of spaghetti code with callbacks jumping all over the place, all of your callback code can be written inline with everything else.

In the following example, we are going to (asynchronously) fetch a very large array of strings (in plist form) from the web and load it up into a UITableView. We will pass a simple completion block to our array fetch method which will tell our class to reload the table.

Creating Our Dictionary Downloader Class

We’ll start by creating a new class called PListDownloader. This will contain a single method called downloadPlistForURL. Declare it like this in PListDownloader.h.

- (void) downloadPlistForURL:(NSURL *) url completionBlock:(void (^)(NSArray *data, NSError *error)) block;

Let’s break this down. First, the method is void (no return). That’s because our block will handle all of the data that this method “returns”. The first parameter is simply the URL of the plist file. In our case, we will be passing in http://www.icodeblog.com/samples/block_test/block_test.plist . This is a ~3MB plist file that should take a couple seconds to download and process.

Finally, we pass in our block. Let’s break the block down even further.

1. “(void ” The void denotes that the block doesn’t return any value.

2. “(^))” The ^ without anything next to it denotes that it’s an anonymous block. We will go over naming our blocks in a bit.

3. (NSArray *data, NSError *error)) is what will be passed back into the block when it gets called. This would be equivalent to the “return values” in this case.

4. “block” This is simply the name of our block parameter passed in. You could have named it anything really.

It’s time for the implementation of this method. In the PListDownloader.m file add the following code:

1
2
3
4
5
6
7
8
9
10
11
12
13
- (void) downloadPlistForURL:(NSURL *) url completionBlock:(void (^)(NSArray *data, NSError *error)) block {
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul), ^{
        NSArray *returnArray = [NSArray arrayWithContentsOfURL:url];
        if(returnArray) {
            block(returnArray, nil);
        } else {
            NSError *error = [NSError errorWithDomain:@"plist_download_error" code:1 
                                             userInfo:[NSDictionary dictionaryWithObject:@"Can't fetch data" forKey:NSLocalizedDescriptionKey]];
            block(nil, error);
        }
 
    });
}

At first glance, one might argue that this looks “sloppier” than the delegate style. Simply because it uses nested blocks. I can assure you this is much cleaner AND simpler. For one, by using GCD you no longer have to worry about creating auto release pools.

So, there’s quite a bit going on here, let’s break it down line by line.

2. This is the Grand Central Dispatch way of firing off a code segment inside of a new thread. Basically we are executing this code on a new thread with a priority of HIGH. You can use this first parameter to prioritize the execution of multiple threads. For example say you are running 2 concurrent threads (one to download user data, the other to download the avatar). You can assign the user data thread higher priority than the avatar thread. The system will handle the rest.

**Note: Using Blocks here replaces the delgate method style of performSelectorInBackground

3. This is a very simple line to download plist data from a URL into an NSArray. There is no error checking or anything fancy. In production, you would want to use NSURLConnection or a lib built on top of it like ASIHTTPRequest.

4. Very simple error check, basically seeing if there was any data downloaded.

5. This is where the magic happens. We call this block as a simple function call passing in our returned array and nil for the error (nil since there was no error).

6-11. This segment handles our error case. If for some reason, no data was downloaded, we create our own NSError object and pass it into the exact same block as in line 5. The only difference is we pass in nil for the results and our error for the NSError object.

Before you gripe in the comments “You could have just done that async call in your main class…blah…blah…”, know that I know this. However, this is just a trivial example. Often times you might have a much larger codebase built up that does more than downloads a stupid plist. Perhaps you have a ton of preprocessing of the url or post-processing of the data. Then it starts to make less and less sense to put this code in your main implementation file.

Also, you might need to download plist files in various parts of the application and do different things with the data that was returned.

Calling A Method With A Block

So, now we have our simple class to download our plist and return the data in a block. But, how do we use it?

Let me give you a bit of context about my sample application first. I have a basic “Navigation Based” project with a NSArray property called pListData. I am displaying the contents of pListData in the UITableView. So, I want to download the plist data from the web, set it to my pListData property and reload my table.

First import the PListDownloader class and then uncomment the viewDidLoad method adding the following code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
- (void)viewDidLoad {
    [super viewDidLoad];
    PListDownloader *downloader = [[[PListDownloader alloc] init] autorelease];
    NSURL *url = [NSURL URLWithString:@"http://www.icodeblog.com/samples/block_test/block_test.plist"];
    [downloader downloadPlistForURL:url completionBlock:^(NSArray *data, NSError *error) {
        self.plistData = data;
        if(!error) {
            dispatch_sync(dispatch_get_main_queue(), ^(void) {
                [self.tableView reloadData];
            });
        } else {
            NSLog(@"error %@", error);
        }
    }];
}

Again, let’s take a look at it line by line.

3. This should be familiar, we create a new instance of PListDownloader. One thing to note here is we are able to set it to autorelease. It won’t be released until AFTER the execution finishes and the thread dies. This is a HUGE improvement over the async delegate model where you would have to keep a property laying around.

4. Simply creating an NSURL object using the string location of our test plist (it’s still there, you can test with it)

5. This is where we actually call our downloadPListForURL method. The first parameter is the easy one, just the URL you created on line 4. The second is the the block that the method will call back to when execution finishes. Luckily XCode will auto complete a nice template for us.

6. Once the method calls back and contains an array of strings, we set our property (pListData) to the returned array. This will allow use to actually do something with the data.

7. Our simple error check

8. It’s going to get crazy again. Since we used GCD to run our code in a separate thread, we need a way to come back to the main thread to update the UI. If you are reading this and don’t know that you do all UI manipulations in the main thread, then I suggest you start following my “Back To Basics” tutorial series.

9. Now that we are in the context of the main thread, we can simply reload the tableview.

Now, when you run this application, it should take quite some time to fetch that data (3MB). But, you will have complete control over the UI while it’s fetch in the background. You could even throw up a little loading message if you so choose.

For completeness, here is a look at what this application produces.

 

As this post has gotten a little longer than I anticipated, I’ll save the part about declaring blocks as properties until next time. If you have any questions or comments, feel free to leave them in the comments of this post (or write them to me on Twitter).

You can download the source for this tutorial here.

Happy iCoding!

Aetuts+ Hollywood Movie Title Series – Back To The Future Part 2

This entry is part 13 of 15 in the series Hollywood Movie Titles

In this 2 part tutorial we will create the title of one of my favorite movie series, Back to the Future! This title will be created entirely using native After Effects plugins and with a little help using Photoshop 3D we’ll animate a 3D model of a DeLorean and composite them together.


Download 3d model of the DeLorean

Download Back to the Future Font


Tutorial

Download Tutorial .mp4

File size: 249 MB


{excerpt}
Read More

DJ Bootcamp – Sasha Masterclass

Sasha shares his advice with the DJs on how to break through. Hear about his journey from listening to Acid House at the Hacienda in Manchester, to his first club residency, to eventual cult status!

The recent Burn Studios Next Producer Star competition in Ibiza included some amazing masterclasses from the greats. This is one such video from that event – we’ll be bringing you more in the weeks to come.


{excerpt}
Read More

CAD and 3D Render Designer by Rocky2889

I am looking for a designer who can be my long term designer. I have many projects to design and the price will be negotiate each project. The designer should be familiar with AutoCAD, CAM, Solidworks, 3D Rendering and understanding the manufacturing design… (Budget: $30-$250 USD, Jobs: 3D Animation, 3D Rendering, AutoCAD, CAD/CAM, Solidworks)