5 Oct 2010

Swearch 1.0.2 Released, Now with MOAR FASTER (I hope!)

Swearch 1.0.2 has been posted. The goal of this release was to improve load time at startup. On my iPhone 4, startup time is down to 2 seconds, whether on 3G, WiFi, or with Airplane Mode turned on. This is down from 1.0.1's startup times of 4-5 seconds, 10-15 seconds, and not at all, respectively.

To update, load up Swearch on your iPhone, wait a minute or so, and then close and reopen it (I promise in-app UI is coming for this). You'll see the version number change to 1.0.2 in the bottom left corner.

What happened?

Swearch uses the HTML5 offline application cache to store all the code and graphics on your iPhone. This means that, on the server, the contents of this file (called "the manifest") are very important at getting the app running. In 1.0.1 and earlier, the manifest contained two additional lines:

NETWORK:
*

These two lines tell Safari that it expects to deal with Internet resources. Looks innocuous enough, right? As it turns out, Safari behaves a little differently when it sees those two lines. One of the quirks is that the application cannot run offline with those lines present (which arguably makes some sense). But the big change is this: With those lines present, Safari needs to reload the manifest file completely before the browser will display your page to the user, even if the app is entirely cached offline. This means that your app's load time is bound to the state of the network. And there are tons of different network configurations out there, from awesome WiFi to the worst 3G in San Francisco's subways. Further, it appears to have no effect on which resources can be dynamically loaded.

Simply by removing those two lines, the application now displays to the user when it has finished loading from the local cache. It still queries the server for the manifest file, but it doesn't block the whole app from running while it waits.

1 Oct 2010

Swearch 1.0.1 Released

Just posted an update with a couple bug fixes that some people have asked for.

  • Fixed issues with searching for hashtags on Twitter
  • Fixed (hopefully) issues with foreign characters, such as  (thanks, @kanji_k!)
  • Fixed issue with swiping the background after closing the "add me to the home screen" HUD (thanks, @myztikjenz!)
  • Fixed issues with a graphical "tear" appearing when you swiped between search engines (thanks, @DavidKaneda!)

To update, you need to launch the app, wait a moment, close the app, then reopen the app. You should see the version info update to 1.0.1. In a future update, I'll pop up a HUD when a new update downloads that you can tap to load.

30 Sep 2010

1.0 Updates

So 1.0 was released today. Thousands of people gave it a try today, which is very encouraging. Many people sent in feedback on improving Swearch, so I'll just briefly condense down what people are wanting.

The most worrying concern is that a small group of users are reporting that the app is taking a long time to load, even after the first visit (the entire app, code and graphics, gets cached to your device when you run the app). This suggests the cache, which is part of Safari, isn't working properly. If this affects you, please visit this test page on your iPhone and tweet @ me (or comment) if the box is anything other than the color green. I have a bug opened with Apple on this (rdar, and OpenRadar). Hopefully I'll hear back soon, and will be able to update.

The biggest feature people want right now is a way to return to the search field. A few of my testers had said they really wanted this, and I'll admit I didn't think it was that big a deal. But it'll be prioritized.

The next biggest feature is iPad support. This will take some work to port over (the UI will be a little bit different on iPad than on iPhone), but it'll be largely the same app. It's also been prioritized high.

A less requested feature, but one that several people still want, is landscape support. I'm not quite sure how I want to lay things out in landscape just yet, but I have some ideas. There is a definite space issue with the way the views are laid out currently, though.

A few people have asked for YouTube and Facebook search engines to be added. I'm going to try and build those and drop them in tonight, or hopefully tomorrow.

I'm also working to speed up load times in general, both on first launch and subsequent launches. The largest resources in the app right now are the clouds on the Twitter background. There are some things I can do to make those more efficient, so I'll begin working on that tonight.

Thanks to everyone for their support and feedback. Keep it coming!

30 Sep 2010

Swearch - A Great Web Search App for iPhone

Swearch is a great new iPhone app for using a variety of search engines quickly. Pick a search engine to use (Google, Twitter, Wikipedia, or Flickr), enter a search term, and quickly get the iPhone-optimized search results displayed full-screen. The current search engine is displayed in a beautiful full-screen UI; to navigate between them, you can swipe left and right to get between each search engine. And it's silky smooth and super fast on your iPhone, with Retina-optimized graphics for your iPhone 4.

Oh, and there's one other thing. It's a web app. Wait, don't close the tab! Please hear me out. Or, if you're going to close the tab anyway, at least give it a quick try.

The app uses HTML5, CSS, and JavaScript to give you a fantastic user experience, the number one priority when building this app. It runs at 60 frames per second on an iPhone 4, even with animating elements in the background (protip: check out the background on the Twitter page). The scrolling has been tuned over several weeks of fiddling with horizontal iPhone paging. The end result: it feels more native than any iPhone web app I've ever used, and my testers have had similar acclaims.

That's not to say there aren't inconsistencies. Some things are simply not possible to work around, such as an issue where the underlying web page scrolls automatically when the search field is tapped. I'll be filing bugs with Apple to hopefully get these bugs fixed, and in a future blog post I'll be talking about what I tried to do to work around them.

There are some more technical features that are in Swearch that you won't really notice, but will make the application feel way better. The big example of this is the use of the HTML5 Offline Application Cache. The first time you load the app, it will download all of the code and graphics used to build the app and save them on your phone. The next time you launch the app, it will only take a second or two to reload the app, no matter how bad your cell signal is. This is usually used to make your app run when there is no network connection, but since that really doesn't make sense for this kind of app, I just use it to make the app launch super fast. If I ever update the app, your phone will automatically load the update

Why not make it an App Store app? There are a few reasons. As I mentioned before, one of the goals was to build a web app which had as good a user experience as possible. I could've released this a month ago, with a less-than-perfect scrolling interface, but that just didn't feel right, and wasn't acceptable. Second, I want to add new features quickly. The source code is fairly simple, so I can build in new features, new search engines, and new interactions quickly. Third, I'd like to do some things that the App Store really doesn't allow. These are some future looking features I want to build soon.

To run Swearch, open this link on your iPhone, and add it to your home screen. It is completely free forever, will never have ads, and you don't need to register for an account.

The application source has been made available on GitHub. It includes instructions for getting the application set up on your server (including setting up the HTML Offline Application Cache). I'll accept patches for fixes and features at my discretion. It has been made available under a BSD license, and you can use the source code however you want. I encourage devs to use this as an example of how to build a great iPhone web application. There are a few great web apps out there, but certainly not enough.

Right now the application is limited to the iPhone. I want to get it running on iPad, Android, and WebOS soon (the last two are more difficult, as I don't have hardware for it, but feel free to fork the project or shoot me a comment/email if you know a fix).

For their efforts in testing and feedback, I want to say thanks to every one of the people who tested Swearch in its earlier forms. I'd especially like to thank:

  • Josh Helfferich (@Digeratii)
  • Federico Viticci (@viticci)
  • Austin Sarner (@austinsarner)
  • Jeremy Grosser (@synack)
  • Angelo DiNardi (@adinardi)

Please give Swearch a try. I think that you'll love it, and that it will change the way you make web searches on iPhone.

 

tl;dr: Swearch is a search engine app for iPhone with an amazing UI. And it's an open-source web app. It's free forever, so just open http://swearch.me/ on your iPhone and add it to your home screen.

 

28 Sep 2010

Swearch 0.9.8 posted

  • Bing is temporarily gone
  • Settings are gone until I can figure out something to put there
  • About information shows up on the main view, and hides when you pan

Hopefully there will not be any new changes needed. If so, we should be ready to ship this thing on Thursday.

28 Sep 2010

Getting set up

I'm about to release a 1.0. You can't release a 1.0 without a blog, right?

Swearch's Posterous

Flip through your search engines to find what you're looking for, fast. A beautifully animated UI that fits right at home on your iPhone. Oh, and I'm a web app. http://swearch.me/

Contributors

Steve Streza