New Feature: Playlist Center! Pick a topic and let our playlists guide the way.

Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member

Adding pull-to-refresh functionality

From: iOS SDK and SQLite: Building Data-Driven Apps

Video: Adding pull-to-refresh functionality

In this chapter, we're going to talk about the process of adding a new feature to our working code. After writing this application and submitting it to the App Store, I decided that I wanted to add a feature. I noticed that when I use the app, I would sometimes leave it for a while with the item view displayed, and after an hour so I would return, and I'd want to refresh the list to see what was new in that feed without having to return to the review and select the feed again. So, I decided to add a feature that would refresh the item view on demand. The first task when adding a feature is to think about how the user will use it.

Adding pull-to-refresh functionality

In this chapter, we're going to talk about the process of adding a new feature to our working code. After writing this application and submitting it to the App Store, I decided that I wanted to add a feature. I noticed that when I use the app, I would sometimes leave it for a while with the item view displayed, and after an hour so I would return, and I'd want to refresh the list to see what was new in that feed without having to return to the review and select the feed again. So, I decided to add a feature that would refresh the item view on demand. The first task when adding a feature is to think about how the user will use it.

What will the interface look like? One of the things I like about BW RSS is the interface is simple and uncluttered. I didn't want to add a button, especially on the iPhone platform with its limited screen space. Before iOS 6, there was no accepted gesture for reloading a page, so I opted to use the shake gesture. I'd seen it's done before, and I liked how it works, a gentle shake of the phone and the feed refreshes. Beginning with iOS 6, however, iOS now provides a pull to refresh feature, which is perfect for this purpose.

So here it is already implemented in the emulator. When I select a feed, I can pull and I get this little icon, and when I let go it refreshes. Well, there's nothing there. So I'm going to add a feed. This is a test feed that I've created. It's cleverly called Test Feed. It's at ios.bw.org/testfeed, and you're welcome to use this. In this feed, every time it gets called, it gives you five new items.

So when I refresh, I'll get five new items and these are random items. The source code for this feed is in Libraries, and it's in testfeed.py. It's a Python script, and this is the implementation of this test feed. It's not a very long script. It's about 150 lines long, and you're welcome to use it. Certainly, if you're going to be using this a lot, I'd rather that you would run it on your own server than on mine, but if you're just going to use it occasionally, you're welcome to run it on my server. And there's a lines.txt file here, which is used, has a bunch of little random disclaimers in it that I collected at one time in my life. Those are the headlines of these feeds.

Batteries not included, Penalty for private use, Some assembly required, et cetera. So that's the pull gesture. When you pull on it, it refreshes. And in the next movie, I'll show you how to implement the pull to refresh feature for iOS 6.

Show transcript

This video is part of

Image for iOS SDK and SQLite: Building Data-Driven Apps
iOS SDK and SQLite: Building Data-Driven Apps

41 video lessons · 6326 viewers

Bill Weinman
Author

 
Expand all | Collapse all
  1. 8m 29s
    1. Welcome
      57s
    2. Exercise files
      2m 17s
    3. Course overview
      3m 4s
    4. Application overview
      2m 11s
  2. 14m 49s
    1. Prototyping in a testbed
      1m 27s
    2. Building the view controller
      3m 45s
    3. Coding the testbed
      7m 56s
    4. Using the testbed
      1m 41s
  3. 37m 49s
    1. Understanding SQLite in iOS
      1m 41s
    2. Creating an Objective-C interface for SQLite
      9m 57s
    3. Testing the BWDB interface in the sandbox
      7m 1s
    4. Designing a database schema
      8m 7s
    5. Supporting the application with a specific interface
      7m 7s
    6. Using C pointers with automatic reference counting (ARC)
      3m 56s
  4. 21m 18s
    1. Understanding the table view
      1m 33s
    2. Creating the view controller
      6m 39s
    3. Reading from the database
      13m 6s
  5. 33m 50s
    1. Understanding the parsing process
      1m 57s
    2. Creating the item view controller
      12m 25s
    3. Reading data from the internet
      5m 30s
    4. Parsing the feed with NSXMLParser
      8m 2s
    5. Updating the item view with the feed items
      5m 56s
  6. 40m 14s
    1. Understanding the modal view
      1m 47s
    2. Constructing the view controller
      15m 5s
    3. Finding a feed link in a web page
      8m 55s
    4. Parsing the feed with NSXMLParser
      5m 4s
    5. Delegating back to the parent view
      6m 11s
    6. Deleting feeds
      3m 12s
  7. 21m 5s
    1. Creating the web view class
      12m 33s
    2. Coding the web view
      5m 25s
    3. Viewing pages in Safari
      3m 7s
  8. 14m 3s
    1. Understanding the iOS preferences system
      1m 23s
    2. Creating the preferences plist in Xcode
      7m 20s
    3. Reading preferences in your application
      5m 20s
  9. 6m 15s
    1. Adding pull-to-refresh functionality
      2m 34s
    2. Implementing the pull-to-refresh gesture for iOS 6
      3m 41s
  10. 27m 1s
    1. Understanding split view
      1m 4s
    2. Coding the table views
      11m 24s
    3. Implementing the iPad detail view
      6m 35s
    4. Implementing the iPad modal view
      7m 58s
  11. 35s
    1. Goodbye
      35s

Start learning today

Get unlimited access to all courses for just $25/month.

Become a member
Sometimes @lynda teaches me how to use a program and sometimes Lynda.com changes my life forever. @JosefShutter
@lynda lynda.com is an absolute life saver when it comes to learning todays software. Definitely recommend it! #higherlearning @Michael_Caraway
@lynda The best thing online! Your database of courses is great! To the mark and very helpful. Thanks! @ru22more
Got to create something yesterday I never thought I could do. #thanks @lynda @Ngventurella
I really do love @lynda as a learning platform. Never stop learning and developing, it’s probably our greatest gift as a species! @soundslikedavid
@lynda just subscribed to lynda.com all I can say its brilliant join now trust me @ButchSamurai
@lynda is an awesome resource. The membership is priceless if you take advantage of it. @diabetic_techie
One of the best decision I made this year. Buy a 1yr subscription to @lynda @cybercaptive
guys lynda.com (@lynda) is the best. So far I’ve learned Java, principles of OO programming, and now learning about MS project @lucasmitchell
Signed back up to @lynda dot com. I’ve missed it!! Proper geeking out right now! #timetolearn #geek @JayGodbold

Are you sure you want to delete this note?

No

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.