I finally finished SD 2.0 and submitted it to the AppStore on 10/12. I suppose it will be another few weeks before this gets cleared.
- Slow start times, or crashes, for large numbers of contacts (>1,000)
- Search by intials (Johh Doe is jd, dj, jdo, djo, etc)
- Allow a white background with standard blue controls
- Search through special characters: typing e is the same as é or è, etc.
- Do more than just dial - allow SMS, Email, Edit, etc as well
- Erase all AutoFavorites at once, or disable them altogether.
- Search the Notes field
- Enter letters through a standard phone keypad (2=abc, 3=def, and so on)
- When returning from a phone call, default to the last set of search results.
This required a near complete rewrite focusing on fast start times for large numbers of contacts. Rather than read the AddressBook into memory as 1.x did, I store a cached copy of the necessary fields in a local SQLite database. This has the advantage of no overhead during application startup - 2.0 starts in the same amount of time with 10 contacts as with 10,000. This also provides a lot of search flexibility, allowing more than the Address Book API calls support. It will also be easier to expand downstream by adding additional fields such as Notes. The only real downside is that you have to manually sync SD with your Contacts. This only has to be done when you change your contacts (and want to search the changed ones), NOT every time you run SD. It's speedy up until a few thousand contacts and then starts to slow down. At about 2,000 it will take 15 seconds. At 10,000 as long as a minute. Above 10,000 is unsupported, and will frequenly crash due to memory constraints. It was a tradeoff I had to make based on the assumption that 95% or more folks have less than 10K contacts. Comment here if you fall into the > 10K category.
I also made some big changes to the UI. I have always been hesitant to use a toolbar or tabbar in order to maximize the vertical space, and therefore the number of contacts displayed while searching. However, even more important is the notion of "one click action": find your number and tap it - no intermediary screens. To resolve this, I implemented an "Action Mode" toolbar:
This works by letting you choose which mode you are in. If you want to SMS someone, hit the SMS toolbar button, search and then select your contact. You can also switch modes after searching. SMS Mode will only display Mobile numbers, and Email Mode will only display email addresses. You can specify the default mode on startup. This lets you still get the benefits of "Start, Search, Connect" and the flexibility of other actions, and allows you to optimize the number of clicks for your common use case.
All 3 modes support the DirectDial concept in that if your search result is not found, you can finish typing the number or email address and connect accordingly. I had also intended to include Edit in this release, but it was going to be a bit more time consuming than I first thought (at least to do it right), so its been pushed until a future release.
I included a few new settings (you get to settings through the main iPhone Settings screen).
I also multi-threaded the search to allow you to keep typing while it searches in the background, and if you type fast enough and have enough contacts it will even attempt to cancel your previous searches in favor of your lastest one. If you have 10,000 contacts you may see this in action; if you have < 500 you will never be able to tell. Also if you have < 100 contacts it syncs with your address book so fast I don't bother displaying the progress screen, so here is a good look :)
As always, comments and feedback welcome. I really do appreciate the constructive emails, and very much appreciate those who volunteered to test my various betas. I'd hate to do another 1.0 fiasco, so I am grateful.

SearchDial
Great App...
This is what old Blackberry user had and sorely miss. If this program is promoted properly you will make a mint!
Waiting for v2.0
Thank you
I won't miss this usefull app. GREAT!!!
...But please, allow - as in many europe countrys usual - sort and display the names in the order last and first name (in the manner as it DialQuick does)
ame - thanks for the kind words. i will address the sort/display issue in 2.1
Looks good! Added to AppSafari here http://www.appsafari.com/utilities/6632/searchdial/, Good work
I really like your program -- along with the SMS & e-mail filters at the top -- very nice. With that said, it would be very nice to have SearchDial keep track of whether the contacts changed so I didn't have to be concerned with that trivial detail. Great work though! :)
Would it be possible for SearchDial to take a "CRC" (cyclic redundancy check) snapshot (for lack of a better word) -- in other words, the first time SearchDial analyzes and imports the contacts, it would store the exact size of the contact list. Any time SD loads it would take a quick look at the size of the actual contacts (database) and if it has changed -- then you could prompt the user if they would like to "refresh their contacts list in SearchDial"?
Hopefully taking a "quick" glance at the size of the contacts database would be something SD could do very quickly at start-up.
I started with the intention of automatically syncing, or at the very least understanding when a sync was required. however, there is a huge drive to improve the startup performance. i already get a lot of grief and 95% of the startup time is out of my control (my startup code is roughly 500ms of the total application start time. the rest is the phone loading libraries and the UI).
i'll think about it more, i too would like to eliminate the manual syncing. however, getting it wrong would be more frustrating as it would lead to unnecessary delays.
thanks for the feedback and support, its very much appreciated!
I recently upgraded to the new version, v2.0
The previous version did list the most called numbers on startup but this version does not is that an error or a design change.
If a design change how can I roll back to the previous version.
Thank you.
The new version also does this. However, i had to change the way i was storing them so the upgrade erased the list and will start over again. as you call folks, it should list them in the Favorites.
Also, check the preferences (Settings..SearchDial from the main iphone home screen). You can enable/disable AutoFavorites
if you still have trouble email me at support@ibranc.com to further troubleshoot
Can you establish a link to voicemail? If so, we could fully retire the native Apple phone app. This could be rather efficient. Also, wouldvyou consider enabling a favorite list that we could opt to be based on choice rather than just frequency?
Thanks.
There is no way to link into VM, I wish there was.
i'll think about the favorites list for a future version. thanks!
searching the Notes field of Contacts is key for my usage. I am coming from 11 years of Palm/Treo and using IntelligentFind for multiple field searches in ALL or some of the field in Contacts but also all apps I want to choose. I need the same for iphone.
I also noticed that the iphone is so much slower than a Treo handling 6000 contacts
I tried to sign up, but no link came back to my e-mail. In any event, I downloaded the Search Dial program to my new iphone and mostly like it's performance. I do notice, however that frequently or recently called numbers do not automatically alphabetize or even link same contact name/different nuber together. For example, if I dial Billie Bob at work and do not reach him, I might try to reach Billie Bob at his cell#. The frequently and recently dialed screens will not place the two Billie Bob entries consecutively. This creates a problem when driving or what ever else may be distracting my full attention. Is there a plan for an actual favorites screen? Perhaps with a one touch dial feature?
@DomPom
I'm adding Notes search in the next version, which is in beta now.
Yes, most of the slowness in the app is hardware related. in fact, it runs quicker on a 2nd gen iPod Touch than it does on the iphone 3g. runs extremely fast in the iphone simulator on the mac :)
@shapid
The autofavorites are driven by 2 things: total times called or last call date. the 'frequently called' goes first by the total call count and then by date. the 'recently called' goes just by date. there is no attempt to group things together by name/contact.
i've heard from a few folks about a manually maintained favorites list and will think through a good way to do this within my current UI/mode of operating.