[iPhone Dev] 코드를 공개한 39개의 아이폰 앱 (Open Source 39 iPhone Apps)

127 Comments

예전에 twitter한 적도 있지만 포스팅도 한 번 합니다.

Ref: 39 Open Source iPhone App Store Apps – Updated With 2 More Apps!

1. ABC 123Sequence memorization game. Utilizes Cocos2D. (itunes link) (source code)

*2. ArtificeStrategy game where you try to get to the other side by moving boxes out of the way. Utilizes Cocos2D. (itunes link) (source code)

3. ColloquyConversion of the most popular Mac IRC client to the iPhone. (itunes link) (source code)

*4. Countitout - A generic counting app. (itunes link) (source code)

5. Diceshaker - Dice rolling simulator designed for role-playing game enthusiasts. (itunes link) (source code)

6. Doom Classic - Classic 3D first person shooter. (itunes link) (source code) (build instructions)

*7. Ecological Footprint Calculate, display, and record your ecological footprint. (itunes link) (source code)

8. Fosdem - Calendar app for the Fosdem open source conference. (itunes link) (source code)

9. FreshbooksApp that enables usage of Freshbooks web invoicing software from your iPhone. (itunes link) (source code)

10. GorillasClassic Worms/iShoot turn based shooter type game converted to iPhone from basic. Utilizes Cocos2D. (itunes link) (source code).

11. Go Go LottoOpen source lotto ticket generator. (itunes link) (source code)

12. iStrobeTurns the iPhone 4 flash into a highly configurable strobe light. (itunes link) (source code)

13. Last .fm  (itunes link) (source code)

14. Mobilesynth - A monophonic synthesizer designed for live performance. (itunes link) (source code)

15. MoleculesAllows you to view 3D models of molecules and manipulate them through touch. (itunes link) (source code)

16. MoverAllows you to transfer stuff from one iPhone to another by “flicking” it to the other device. (itunes link) (source code)

17. Natsulion - A basic twitter client converted from mac. (itunes link) (source code)

18. NowPlayingAllows you to check local theater listings, and check rotten tomato ratings. (itunes link) (source code)

19. PacklogBackpack journal client. (itunes link) (source code)

20. PlainNoteSimple Open Source Notepad. (itunes link) (source code)

21. PocketFlixFind movies, and manage your Netflix information. (itunes link) (source code)

22. NevoChessA Xiangqi game. (itunes link) (source code)

23. reMailE-mail client featuring ultra-fast search. Removed from app store, but source made available. (source code)

24. RobotFindsKittenPort of a very silly “classic” ASCII game. (itunes link) (source code)

25. Sci-15 HPCalcCalculator app based on classic scientific HP-Calculator. (itunes link) (source code)

26. SpaceBubbleSpace game featuring core graphics, and accelerometer usage. (itunes link) (source code)

27. Star3MapAugmented reality star and planet charting application. (itunes link) (source code)

28. Task CoachPersonal to-do list and task manager. (itunes link) (source code)

29. TubestatusLondon train schedule tracker. (itunes link) (source code)

30. TweejumpPlatform jumping game inspired by Icy Tower. Utilizes Cocos2D. (itunes link) (source code)

31. TweeteeEnhanced version of the Natsulion Twitter Client. (itunes link) (source code)

32. TweeteroBasic twitter client with image uploading. (itunes link) (source code)

33. TwitterfonSuper-fast intuitive twitter client. (itunes link) (source code)

34. ViralFireUnique game where you are a dodging blood cell. (itunes link) (source code)

35. WikihowA reader app for the popular how to wiki site. (itunes link) (source code)

36. Wolfenstein 3D Classic Platinum – If you haven’t heard of Wolfenstein post below so we can say a prayer for you. (itunes link) (source code)

37. WordPressClient for managing WordPress blogs. Also has an iPad version. (itunes link) (source code)

38. YourRightsPocket database containing a summary of your legal rights. (itunes link) (source code)

39. ZBarA barcode reader. (itunes link) (source code)

[iPhone Dev] iPhone Open Soruce들을 비쥬얼하게 잘 열거 해뒀네요 ㅋ

1 Comment

http://www.theiphonedev.com/SourceCode/tabid/143/Default.aspx

좋은 library나 open source를 두고, 왜 직접 만드는가?

4 Comments

“오픈 소스 (라이브러리나 code snippets을 포함한) 를 써야하느냐?” 라는 – 이 길 수 없는 논쟁 – 큰 주제로 글을 쓰는 것은 아닙니다.

최근 행해오던 것들을 돌이켜 보고, 그게 잘 한 일인지 의문을 제기해보고, 또 그런 것을 통해서 “어떤 부분은 잘 했구나” 또 어떤 부분은 “그렇게 하지 말 것을” 이라는 여러 가지 생각들이 들어서 몇 글자 적어 볼려고 합니다.

저 또한 유용하고 좋은 오픈 소스들을 사용하고 있고 앞으로도 그럴 것이지만,
때로는 – 참고 해서라도 – 직접 만들어 써야할 경우도 있는 것 같습니다.
(제가 듣기로 일본의 회사들은 아주 밑 바닥부터 직접 만들어 쓰는 경우가 많다고 합니다. – 출처 불확실 -_-;;)

※ 오픈 소스에서 좀 더 나아가 외주나 구입을 통해서 가져오는 것까지 포함해서 생각해보 괜찮을 것 같습니다.

1. 기능 추가/수정이 어렵다.

오픈 소스는 크기가 방대하거나 사용되는 기술을 제대로 알지 못하면 기능을 추가/수정하기가 힘든 것 같습니다. 어떤 경우는 디자인이 너무 잘되어서 그 디자인을 다 이해하지 못하고 섣불리 수정했다간 side effect로 다른 기능도 제대로 돌아가지 않는 경우도 있을 것입니다.

예전 Cppunit에 몇 가지 개선할 부분이 있어서 수정을 하려고 했는데 JUnit에서 파생된 아이답게 너무 잘 디자인되어서 그 디자인을 다 파악하지 않고는 수정하기가 힘들었습니다.

code projectcode guru등에서 가져다 쓰던 소스들에 어떤 기능을 추가하기 위해 끙끙 거리다 보니 거의 동일한 것을 새로 만드는 만큼의 시간도 걸렸던 것 같습니다.

원하는 특정 기능을 무작정 가져다 쓰려고 해서 생길 수도 있는 문제 인 것 같습니다.

원하는 기능의 구현을 위한 기술을 어느 정도 잘 알고 있는 상황에서 참조를 위해 사용하는 것이 더 바람직 한 것 같습니다.

2. 불필요한 기능들이 포함되어 있는 경우도 많다.

예전에 Antlr (ANother Tool for Language Recognition) 이라는 Lex/Yacc 일종의 도구를 즐겨 사용하던 적이 있었습니다.

 Grammar의 문법도 직관적이고 C++/Java/Python 등 여러 형태로 코드도 잘 만들어주고 생성된 코드가 다른 것들에 비해 가독성도 있고 open grammar도 많고 유저 및 관련 도구들도 꾸준히 만들어져서 아주 만족하며 잘 사용해왔었습니다.

하지만 소스 코드를 파싱하는 수준의 작업이 아닌 경우는 파싱을 위한 Grammar로부터 뽑아져 나오는 코드가 너무 컸습니다. 여러 형태의 Grammar rule들을 대처하기 위해 코드가 생성되니 Grammar가 작더라도 생성된 코드는 컸습니다.

그래서 요즘은 Antlr의 코드 생성 방식과 유사한 형태로 코드를 직접 짜서 사용하고 있습니다.

앞서 거론한 CppUnit 또한 불필요한 코드가 많은 것은 사실입니다. 만든 저자가 워낙 여러 가지 legacy code의 경험이 많아 아주 많은 것을 고려해서 만들었기 때문입니다.

3. 문제 (Defect) 가 발생했을 경우 해결하기가 힘들다. 즉 불확실 하다.

물론, 잘 검증된 오픈 소스도 많고 또한 오픈 소스 답게 여러 사람들이 문제를 수정하고 발전해 가는 경우도 많다. 그래도 제품에 탑재된 오픈 소스에서 문제가 발생하는 경우는 위에서도 거론했듯이 수정하기가 만만치 않다.
더욱이 문제의 원인이 오픈 소스인지도 알기 힘든 경우를 종종 보았다.
(또한 메모리 릭이나 코딩 스탠다드 부분도 문제인 것 같다)
관련 지식 없이 무작정 가져다 쓴 오픈 소스의 경우는 재앙을 부를 수도 있는 것 같다.

결론

어떤 드라이버나 막강한 그래픽 라이브러리의 경우는 만드는데 시간이 많이 걸리니 가져다 써는 것이 당연한 것이 아니냐? 라고 반문할 수도 있다.

하지만 그 전제 조건은

가져다 쓰는 것에 (오픈 소스든 외주를 통한 것이든, 사오던 것이든) 대해서
그 것을 자체적으로 만든 만큼의 기술을 보유하고 있어야할 것이고,
그렇지 않은 경우라도 향후의 문제 발생에 대한 대처 및 추가 개발에 대한 대안을 가지고 있어야 할 것이다.

이 말은 맨땅에서 새로운 것을 창조해라는 것이 아니다. 맹목적으로 가져다 쓴 오픈 소스는 그 것을 처음 부터 만드는 것 보다 더 많은 시간을 앗아 갈수도 있으니 잘 생각해보고 쓰든지, 참조하라는 뜻이다.

[temp] MS, 오픈 소스로 DNA를 바꾸다

No Comments

from: ZDNet Korea
http://www.zdnet.co.kr/itbiz/column/anchor/scyoon/0,39030409,39156643,00.htm