Monday, December 01, 2003

So you would like to make a Linux PDA/Phone?

Here is a list of things to do to make a truly sucessful Linux PDA. This is a list that I have been putting together in my free time the last few years as I have been interacting with this growing field. Some ideas you may like, some you may disagree with. A few ideas you might not have known about, and many that you probably could list yourself. Without further delay here it is:


    System Overview

  1. To provide a stable and user friendly commercial open source Linux based PDA that can be used by a teenager, but scale for the enterprise. - If a teenager can't use it then the Enterprise wont want to put it in the hands of the fourteen year old in the stock room.

  2. Have the ability to fit in only 8MB Flash and run in 16MB RAM. - It is easy to expand something, but hard to shrink.

  3. The primary goal of the project is to be fast, small/stable, and bugfree. (Rather then to be built cheaply/fast) The reason for this is that the applications will run on devices that should not need to be updated.

  4. Applications should either be a single file/module or file/directory based (palm and OSX respectively), any other choice will cause you pain and dollars in tech support. This allows for easy moving to memory cards, transfer to friends, transfer to another device (irda), transfer to desktop all without installing or having the application have to know about the file system. Also they can be removed without worring about left over files.


  5. Enterprise Services
  6. Custom ROMS - With maybe nothing more then a different "Walmart" logo, but there is money to be made here.

  7. Building Custom Applications - With custom roms come custom applications.

  8. VPN Intigrated/module - Security always wins points.

  9. Java Solution - Must be buzzword compliant and let manager take advantage of those cheap undergrads and proclaim JAVA is the one true...oh never mind.

  10. Jabber - Instant communication using an open protocol that can be secured and wont change or go away three months into your product lunch.


  11. Developer Services
  12. Application Certification Program - Not meant to be a money maker, but just help recover some of the cost and at the same time improving the quality of the applications running on your device/platform. Some ideas include:


    1. Check over an applications install/uninstall

    2. Check name description, for inconsistencies etc and possible better

    3. Run Valengrind for memory leaks

    4. If source if provided check over for possible improvements.




  13. Unique device ID or some other common method for commercial applications to prevent piracy as much as possible. - Shows that you are there to help the developer.

  14. Host commercial applications. - Provide the hosting for their application so every developer doesn't have to re-invent the wheels while providing a common portale for your users.

  15. Developers can buy views for their certified application as the homepage's "Featured application".


  16. User Services
  17. Buy/Download applications online and automaticly sync. The package manager can and must be able to buy apps online. The ability for users to just click, ten seconds later the application is installed and their credit card is billed $5 with no hassle. This is a marketing wet dream that is not difficult to impliment.

  18. Web based agenda sync (for example: http://chronoss.sourceforge.net/)

  19. Backup PIM data and or all data remotely via Jabber.

  20. Provide a pda web portal like: http://mobile.yahoo.com/home

  21. Provide service similar to ziproxy. ziproxy is a forwarding (non-caching) proxy that gzips text and HTML files, and reduces the size of images by converting them to low quality JPEGs.

  22. PDA applications could be nativly compiled for the desktop side so users could try them for free and then buy them for their pda.


  23. Sync
  24. Open API. There is no reason for the sync software to be proprietary. You sell hardware and services on that hardware NOT sync software! An open api will allow for plugins to sync to palm/outlook/kmail/etc.

  25. Outlook of course

  26. Copy the data via any means (ftp, scp, Samba, nfs, jabber etc )


  27. Kernel
  28. 2.4.2X And 2.6.X

  29. On boot using lpp (or similar) to have a "pretty" active user experience that doesn't seem to hang

  30. Well written GPL'd drivers in the official kernel (Audio, usb, IR, touch screen etc)

  31. Ability to scale the CPU speed as needed

  32. USBIO, USBNET, WIFI, IRDA, and serial for connectivity.

  33. Driver for a VGA CF out is one of those nice things that no one uses, but everyone shows off.


  34. System
  35. Ability to boot VERY quickly so it can be shutdown to save power when not used for X amount of time. (Possible even suspend/resume to disk if fast enough)

  36. Easy to install a new ROM by the user. (One and only one click!)

  37. With so many very small fast webservers out there there are too many uses begging to be be taken advantage of. Perhaps Displaying the users vCard and any public Docs, allow login to see addressbook/calendar for printing from the desktop webbrowser. Spending ten minutes a hundred ideas could easily be created.


  38. Finger server - Present what is on the/a specific todo list.

  39. VNC

  40. Multi user - Applications should never crash the system.

  41. Some sort of factory reset available to users (Union FS with cram fs and jff)


  42. Windowing system: X11/kfb (both?) I can't decide because I have never seen hard numbers on this. How much memory they use and how long it takes to start are two principle numbers that need to be discovered before a decision can be made. Unless you have real comprehensive numbers on this any e-mails concerning this will be promptly deleted.

  43. If X11 is used then fun things like:

    1. Easy Remote Login & Audio

    2. Easy Remote Application Launch/Running

    3. Easy way to show applications on desktop side.



  44. Clean good small fonts are a must.

  45. GCC 3.X with prelink to help reduce those startup times. Maybe even use uclibc.

  46. Uses Debian for easy portability and reuse of precompiled and packaged applications along with large number of applications that work together and will have future updates - Customers care where you will be in five years, but Debian will never go away.

  47. Application launcher should be modular to allow for other designs from the community.

  48. Launcher has a built in Today screen that is updated (from the db? xml files? other?).

  49. If using Qt or QtE a mini-kde library should be created allowing for much quicker KDE cross porting. They have plenty of really good classes and there is no reason to not take advantage of them. Along the same lines an open communication should be forged with KDE (or whomever) to help share ideas.

  50. A clean simple widget theme similar to PocketPC which uses the screen space very well.

  51. Palm got it right, the "Hardware Pulldown" button that slides menu up/down from off screen should be present. It saves screen space and is just all around good.


  52. PIM
  53. They should talk to each other via a database. For such things as a recuring todo list item that is spawned from the calander saying it is someone's birthday and to buy a present.

  54. An OPEN API - Is your business only about selling some pim software? If not then open the api and reap the rewards.

  55. The source for these applications should be open so that other can help improve them. (Note I didn't say GPL)

  56. Application must be able to link to each other.

  57. Floating appointments.

  58. This pim list could go on forever. Just copy DateBK4, they got it right.



Applications


In the event that you aren't sure what applications you need for your device here is a small list:



PIM:

  • Today type application - Integrated into the launcher for zero second load time.

  • Notes

  • Todo

  • Address Book

  • Calender

  • e-mail

  • Jabber client (Sms, PGP Encrypted IM's, sync, whiteboard, backup)

  • Calculator

  • Phone (VOIP)


  • PIM Extras
  • Advanced Calc with graphing features

  • Data tracker and grapher (mini excel)

  • Expense tracker

  • Car tracker

  • Shopping list


  • Applications
  • Blood alcohale calculator

  • Tip calculator

  • Currency converter

  • Scale converter (C->F degrees, Feet->meters etc)

  • Word Reader

  • Excel Reader

  • Audio Recorder

  • Remote controller (ir)

  • Movie times

  • Recipe manager

  • Diet manager

  • Bible (and Virtual Girl)

  • Area code lookup

  • Zip code lookup

  • Stop Watch/Big Clock/Alarm Clock

  • Language dictionary

  • Stock manager

  • String search (Grep frontend).

  • P2P

  • Password saver/manager.

  • Web browser

  • ebook reader with voice integration

  • Video/Audio Media Player

  • Image viewer

  • Image editor

  • Text editor

  • Test application


  • Developer Applications
  • Console both serial and local

  • File manager

  • Wireless sniffer

  • Wireless scanner

  • Process manager

  • VNC

  • Network monitor tool

  • Network utility (ping, whois etc)


  • Games
  • Chess

  • Puzz-le

  • Tetris

  • Checkers

  • Scrabble

  • Multiplayer doom with screen touches for movement.

  • Buzzword Bingo

  • Simple line based game

  • BlackJack


  • System
  • Media Manager (Disk Formater)

  • Clock & timezone with Internet time getter

  • Security/username (Security application wouldn't be number based, but image based.)

  • Screen Calibration

  • Light & Power

  • IR control

  • System Info


  • Package Manager

  • Network (lan, wifi, ppp, bluetooth, vpn)

  • Appearance

  • Audio (or would this be an applet?)

  • Applet manager?

  • Backup & Restore. (Maybe be part of Jabber)

  • Internationalization - Planning from the start it easier then converting later on.

  • Accessability

  • Reboot Utility (Restart the launcher, reboot)


  • Applets
  • Audio (or would this go in system?)

  • Battery

  • Turn off screen, but leave system on.

  • Keyboard/input (graffiti, keyboard, pickboard, etc)

  • Clock

  • Quick application menu (Similar to Pocket PC. NOT a start menu listing all applications)

  • Screenshot
  • No comments:

    Popular Posts