[Galaxy S I9000 Android Development] E:V:A:
This is a short summary of some important general points for posting new ROM's.

It should be considered as an optional "add-on" to the general thread:

"Galaxy S I9000 Android Development **STICKY THREAD** Read here first!"

The number of man hours spent working and developing new custom ROMs are astronomical! So why then, is it that so few new ROMs are successful? Basically because of lack of information and poor public visibility/involvement of the developers themselves. It's just like in any other successful business, you have to make your product or service stand out from the rest. Either by making an amazing product or by being a great inspiration for others to follow. Here I will try to explain and list some fundamental ideas, in order to make your ROM better and more popular.

When a would be ROM flasher is looking around for a new ROM, he searches the web and the XDA-forums for threads, usually beginning with the text "[ROM]". Next he/she look at the FIRST page where the developer (and his/her team) is presenting the various features of their new design. What is presented there will often be a decision maker for whether or not someone wants to try it out.

There are a few things that consistently differs between "good" ROMs and "bad/poor" ROM's. These things are often and naturally related to the amount of information available around the ROM in question. Someone who have put down enough mind, sweat and hart into the production (cooking) of a ROM, would also like to share his/her effort in the best possible way, not minding writing a detailed and useful description about their product. The items found below are part of some of these things that do MAKE A DIFFERENCE.

- Primary Purpose:

Essentially a description why you want to provide this ROM and why you think it is needed. What are the main features and driving forces for providing this ROM?

- Ultimate Gaming Experience

- Super stability

- Super Compatibility

- Great Battery Duration

- Minimalistic User Interface (UI)

- Simple to use functionality

- Latest and coolest never seen before interface behavior

- Fully loaded with ultimate editions of absolutely everything

- Mobile Penetration Testing Platform

- or perhaps just for educational or experimental purposes etc...

- Up-to-date Maintenance:

That means an active developer (or group of) who are readily available to answer questions from users of all levels, new or advanced! Often that they should be inhumanly available at all times of the day & night!

- Up-to-date Firmware Release:

That means the the source of your ROM is preferably based on the latest, but publicly available code/firmware. Not on some hidden leaks or old hacked code. When I say "hidden leaks" here, I mean the kind where the origin of the code (compiled or not) cannot be verified or downloaded. (BMW doesn't make car/sales advertisements using 2 year old engines from unknown/secret sources!)

- Detailed CHANGE-LOG:

People want to know that what they flash on their phones, is as close as possible to what they would like to see and use. Also from a paranoia perspective most of us would like to know that it doesn't contain 3rd party or other strange applications that we will never use, or which will give us trouble when we want to add/update applications, at a later time. A description of the various applications is also very useful. Most people would wonder what the "DarkBotSendHelper.apk" is doing on a phone.

A change-log would ideally consist of a list with:

- Title: Change Date and the custom ROM Version the changes apply to

- Full application name

- Full application version

- Short application description

- Link to application source-code, if available

- Link to application on "Android Market"

- Reference to what hacks has been made, if any

- Reason for why the hack is needed

- Unresolved BUG-LOG:

A brief log of bugs and unresolved issues that affects the current release. It is hard to explain without cussing how annoying it is to flash a new ROM, just to find out that some WiFi issue has not yet been resolved, which was posted on page 456/1200! If people post bugs/issues, that cannot be immediately resolved, please add those issues to the BUG-LOG, on the front page.

- Screen Shots! Updated Screen Shots!

The importance of good screen shots can never be enough emphasized! Many ROMs are updated continuously and if the screen-shots doesn't match what the user installs, he's gonna go WTF!, and will start to peppering your support threads with questions about how to install this and that, and how to get the same themes you are using in those screenshots, or from another different ROM altogether! You wouldn't be able to sell a new BMW with a picture of an old Volvo, would you? So why do you think a ROM would be any different? Also include a brief caption about the essential feature(s) shown, for each picture.

- Detailed Installation Instructions

This hardly need more explanation apart for making sure you also say something about:

- WIPE/No-WIPE

- Bootloader Requirements

- Recommended Procedure

- Detailed Device Compatibility List

Yes, the same gross model name/number of a particular device, may very well have some minor variations that can render the device completely incompatible with software from it's apparent twin-brother. Or even certain Firmwares may not be compatible to slight manufacturing variation. See for example the "Samsung Galaxy S" with their sub-models GT-I9000(B/M/T), and to complicate things further, even within the same model there may be slight differences, like in the PCB of the USB-port of the SGS2 GT-I9100.

- Detailed Language Compatibility

What do people use their phones for? Communication! Sure, some use them as a game pad, but after all it is primarily a browsing and communication device. So if you can't use your primary languages with your device, it is useless! Although some network operators are only beginning to understand that most of the connected world is at least bi-lingual and often much more. Thus it is of essence that your phone's keyboard, screen-reader and web-browser can read, display and understand most characters and alphabets around. (I.e. I still fail to understand why it is virtually impossible to find a phone with Russian, English, Spanish and Norwegian keyboard layouts/character sets or at least let me select these my self!) In addition it is very confusing for a first-time ROM flasher to understand the need for all the various PDA/PHONE and CSC region settings, which are often modified and re-packaged for a well cooked ROM, and thus no longer adhere to the original regional code.

So when you cook your ROM, please provide as much information as possible regarding how the user can adapt their phone to his/her own languages. This information includes at least:

- What languages are available for basic operation (the operating system)

- What languages are available for the keyboard mappings

- What keyboard applications can use these languages (Swype, Samsung Keyboard etc.)

- Simple instructions how to include, use and set the phone languages

- List of Technical Terms and Definitions that describe the ROM

The world of mobile device development is packed by technical jargon and abbreviated terms. Many times they are also abbreviated and used in the wrong context, although some the community know what it means. Simplify your vocabulary and clearly define your terms and stay with community standard ones!

- General Presentation

Like any other business presentation, please skip the HUGE fonts in a zillion colors. Most of us are neither blind nor illiterate, but you may risk to come across as being both, with those type of fonts. Remember "KISS"? - Keep It Simple Stupid.

- SPELL CHECK!!

It's embarrassing and very annoying to read descriptions of how great, professional and how well maintained a particular ROM is, when the text is riddled with misspellings, wrong words and childish grammatical errors. Although most of us are very understanding that we are living in a multicultural and multilingual society, sometimes all I think about is, how a person who doesn't know how to spell check, could ever be able to cook a mobile phone ROM. Most text editors feature at least some basic spell checking, bloody hell, USE IT!

- CREDITS

Most of the Android development community is completely driven by voluntary and open source work. Make sure to include the correct credits to those persons who have contributed to the various info/hacks/software that you include in your ROM. Use a separate list for the credits, that include the name (handle) and how/what he/she did to contribute.

2 Good Examples:

http://xdaforums.com/showthread.php?t=1350763

http://xdaforums.com/showthread.php?t=1155776

Final Words:

It is very likely I have missed something here, or that you (as a developer or moderator) disagree on something I have written here, if so, please provide your constructive comments how I can improve this list and post.

In Great Expectations and Hope for Many New Amazing ROMs!

- E:V:A -

PS. This was posted in the "Developer Section" as it applies only to new ROM development threads, and I wouldn't consider this neither as "Q/A" nor "General". But if OP/MOD know of a better suited place, please just move it there...

Also I am not aware of a similar post to this one, even after searching XDA quite a lot. So if it already exists, it is not easy to find and should be reposted or stickied!