Sunday, October 11, 2009

iPhone dev Stupidity 78: Learned from iPhone developer Meeting

iPhone Talk 1

-----------

1. Sample code for App Store style table

2. - (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight

3. User generated content must rated as 17+

4. error 101 usually means low memory warning

5. XCode 3.2 -> Settings -> General -> Accessiblity Inspetor: for UI debug

7. Social networking/Forum need to provide Apple a functional account for review

8. tableView:titleForDeleteConfirmationButtonForRowAtIndexPath:
Changes the default title of the delete-confirmation button.

Make sure the title is not too long to cover the table cell content - If it's SDK's bug, do not count on it.

9. If using system icon lead to user confusion, do NOT use it

READ the HIG word by word.

10. Serch Bar:
1) tableHeaderView as a searchBar
2) delegate

11. Clear Release Note:
- which screen, what changes
- if not sure, release as "bug fix"

12. Q/A:
1) localization: use less IB. Take care of label length.
2) Cocoa cookbook: non offical API - on your own risk
3) Ad hoc deploy: iTunes will change .app -> .ipa to send. (Packing may change the app code sign)
4) Use UIDevice to get the SDK version number.

Talk 2 : iPhone Data Managment

------------------

1. SQLite
1) Sample code: SQLiteBooks
2) copy sqlite.db from resource to writable folder (Document) - for safty.
3) Shrink the db file size: sqlite > vacuum
4) Document folder is resevered when upgrade
5) >50MB file, copy failed
. - (BOOL)createSymbolicLinkAtPath:(NSString *)path pathContent:(NSString *)otherPath
. seperate db fields - leave big & read only one in resouce, only copy the small & editable fields to document folder.
6) Design schema with consideration for upgrade
. keep version in db
. sql script to choose different db via version.

2. XML
. RSS
. API via http

3. Ordered as: idea, marketing, tech.

Talk 3: SQLite & Core Data

----------------------
1. Browser: sqlitebrowser.sourceforge.net

2. Multi-platform use SQLite

3. Core Data on logic level; and optimized for caching, lazy-loading and memory management; KVO/KVC; undo/redo.


Talk 4: Three 20 Kit

----------------

Controls:

1. New message/mail
2. Styled fonts
3. Activity labels/progress bar
- screen lock styled label - glowing effect
4. Launcher
--

Concept:
1. Style: like CSS
2. using 'next' to combine different styles
3. URL: can point to res, view controller
- "bundle://..."
- "documents://..."

Talk 5: Core Animation

-------------------

Talk 6: Multi Touch

----------------
1. Use 2 fingers touch to drag canvas
2. Multi touch levels: 1 -> 2 -> 3 increase
3. app:
. SmartChoice
. OthelloCube

Talk 7: iFighter

------------
1. Lite before non-free version: get feedback for final version. iFighter used 1.5 month.
2. Promc code for promotion
3. Tips:
- old topic but be the best
- monkey -> hardcore: adapt to users of different levels
- great service to keep users
- only make the great product -> from product to brand
- share the success

4. Q/A:
. 3 peoples to make iFighter
. personal product to company product - refund if users have difficult to transfer
. why don't ship paied version when lite version is asending
. self made game engine
. made in home
. peer review, defining the great
. the product finishs where you stop working it
. price -> confidence in the product: check the sales chart.
. ccgamebox 2d engine
.

No comments: