My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
ProjectIdeaDetails  
Details on how to implement reMail project ideas.
Phase-Implementation
Updated Mar 6, 2010 by gaborcse...@gmail.com

Introduction

This page lists a number of possible projects based on reMail's source code and gives pointers on how to implement them.

If you're having trouble with any of this code, feel free to post on the remail-iphone Google Group. I'm happy to add more details to this page if you need more pointers.

Projects

(Note: I'm writing this page on the GBus from Mountain View to San Francisco, and I will get off at the SOMA stop. I will save this page and get off then, and pick up where I left on Monday. - Gabor)

Landscape mode

Difficulty: (3.5/5)

  • I think you can get away with just implementing landscape more for SearchEntry, SearchResults, FolderList, MailboxView, and MailView
  • Read Apple's reference docs for UIViewController on how to implement autorotation
  • SearchEntry and FolderList should be trivial to autorotate
  • With SearchResults and SearchEntry you have to make sure that the MailItemCells correctly adjust for more width
  • MailView is a bit trickier - all the stuff in loadedEmail assumes a display width of 320 pixels, so you need to adjust the code for device orientation and reload

Password / Lock Screen

Difficulty: (3/5)

Before I explain this, I should point out that while adding a lock screen to reMail might be a good idea, you should always, always have a PIN lock on your phone. Yes, adding a lock screen to reMail will protect you from a thief reading your mail. But if you don't have a PIN code, reMail will be the least of your worries since a thief can impersonate you, read your notes, and steal other personal info. PIN code your phone!

How to do this:

  • Create a new xib and ViewController for the configuration screen.
  • Create a new xib and ViewController for the screen where you enter and change your PIN.
  • Add some accessors to AppSettings so you can read / write your PIN.
  • In ReMailAppDelegate.application:didFinishLaunching:withOptions, call your PIN check screen if a PIN code is set. You could do this by calling UIViewController.presentModalViewController: - that might be the easiest option.

Add more account types

Difficulty: (1/5)

This is about adding more preconfigured account types for Mobile Me, GMX, etc.

  • Add a new button to AccountTypeSelect that calls up a FlexiConfig view with the right parameters (server, port, etc.). The button can be pretty plain or have the provider's logo - just make sure you have the right to use that logo.
  • In SettingsList, consider changing the logo based on account type
  • Test, Test, Test

Autocomplete previous searches, not just names

Difficulty: (2/5)

  • The SearchEntry view controller currently autocompletes by calling [SearchRunner autocomplete:]
  • In SearchRunner.autocomplete, we query the Contacts db's search_contact_name fts3 table. You should also query the past_query table.
  • Add some metadata about whether you're returning a past query of person name.
  • In SearchEntry, make sure you trigger the right kind of search - goFTSearch and goPersonSearch lead to different types of queries

Pre-sync headers of all emails, then sync contents

Difficulty: (5/5)

  • I would start by gaining a deep understaning of ImapFolderWorker
  • Then introduce a pre-sync phase where you sync all headers
  • That pre-sync phase would be triggered from ImapSync the first time you encounter a folder

Download all attachments by default

Difficulty: (2/5)

  • Add a PSToggleSwitch to Settings.bundle - this will show up in iPhone > Settings > reMail
  • Add some function in AppSettings to reflect that setting
  • Understand ImapFolderWorker's fetchFrom: function
  • Read AttachmentDownloader for how to download attachments and where to store them
  • Test test test

Re-scan folders and delete messages that have been deleted on the server

Difficulty: (4/5)

  • Add a new sync phase in ImapSync that scans all the headers
  • Generate hashes and diff them agains the uid_hashes generated by EmailProcessor for duplicate detection

Localize into more languages

Difficulty: (1/5) - but this is a lot of work

Currently, reMail is localized into German (well) and French (badly). You could help by translating into more languages.

  • Go through all the xib's
  • Create a new Localizable.strings

In search results, see which folder an email is in.

Difficulty: (1/5)

  • This is pretty simple to add in MailView's loadedEmail: method
Comment by bestewa...@gmail.com, Apr 6, 2010

Push for the mail?

Comment by beta...@gmail.com, Apr 22, 2010

Am working on landscape mode. I'm not too far away from completing it, actually.

I'm also planning to look at notifications.


Sign in to add a comment
Powered by Google Project Hosting