2011년 5월 16일 월요일

[Android] 안드로이드를 혐오하는 개발자 이야기

제목대로 나는 안드로이드를 혐오하는데... 그 이유를 적기 보단 경험담을 적어볼까 한다. 직접 경험한, 그리고 주변 사람들의 경험담이다. 물론 글로 표현하기 위해 과장하거나 고쳤다 -_-;

[참고] 이 글은 2011년 5월 경에 쓰여진 글입니다. 이 글을 썼던 시점부터 이미 안드로이드 개발에서는 손을 떼고 있기에 현재까지의 개발환경 변화는 모른다는 점에 대해 인식하시고 글을 읽어 주시면 감사하겠습니다.

정확한 파편화 리스트를 공개할 수 있다면 좋긴 하겠지만, 기업 내부에서 일어난 일과 해결책은 기업비밀에 해당하는 내용이라 누설하기에는 곤란하다. 그냥 경험담 수준에서 정리하는게 좋을 것 같다. 그러다보니 주관적일 수 밖에 없는 내용인 것 같다.

... 아마도 iOS와 안드로이드 양 쪽 다 개발해 보지 않았다면 이해가 가지 않는 내용이 있을 것이다 ...

회상 시작!

아니 이 폰은 무슨 데이터케이블로 충전도 안돼?!!
데이터케이블로 충전이 안된다는 건 개발자 입장에선 정말 최악이다. 특히 늙어서(?) 배터리 수명이 짧은 시료라면...

"이거 드라이버가 안잡히네?" ... "전용 드라이버 깔아야되요"
그래서 내 PC에는 여러 전용 드라이버가 좀 난잡하게 깔려있다. 그런데 상당수의 폰은 안드로이드 개발 드라이버로 개발하는데 지장이 없다. 기왕이면 개발용 드라이버로 통일 좀 시켜주지?

팀장님! 이클립스가 너무 무겁고 느려요!
PC를 업글하... -_-?? (하지만 Xcode4가 무거워 졌기에 할 말이 없다)

팀장님! 시뮬레이터가 너무 무겁고 느려요!
iOS는 빠르던데 이상하네? ... 그나저나 안드로이드는 실기 없이 테스트 하는 건 도저히 무리다. 시뮬레이터로 개발한다는 건 사실상 상당한 기능을 빼 먹고 개발하는 것과 다름이 없었다. 심지어 디버깅 까지 실기가 빠르더라.

이러저러한 기능의 코드를 만들어 달란다. 만들어서 제출했다. 그런데 너무 느리다고 다시 만들라고 한다. 테스트 하는 안드로이드 스마트폰 마다 속도가 천차만별 이란다. 난 레퍼런스폰에 맞추서 개발했었을 터인데...
안드로이드는 하드웨어 편차가 큰 편이라고 할 수 있다. 최근 저가폰은 그냥 버스폰으로 풀리고 있을 정도인데 이런 하드웨어 편차를 극복하기에는 특별한 노련함(?)이 필요하다.

특정 디바이스 정보의 리스트를 뽑는 코드가 일부 폰에서 다 안나온다고 한다. 레퍼런스폰에서는 잘 나오는데 왜 일부 폰에서는 안나올까. 꽤 오랜 시간을 들여서 완전히 다른 방식으로 코드를 새로 작성했다. 물론 지식의 문제였을지도 모르겠지만 원래 코드는 상당히 잘 알려진 코드였다.
안드로이드는 제조사에서 직접 일부 안드로이드 소스코드를 건드리기도 하겠지. 최적화 등과도 관련이 있을테니까. 그리고 그런 수정이 뜻하지 않던 곳에서 사이드이펙트를 발생시키기도 한다.

리스트뷰의 움직임이 특정 폰에서 다르게 보인단다. 똑같이 맞추어 달란다. 끝 지점에서 땡기면 끌리다가 터치를 놓으면 다시 돌아가는 아이폰스런 움직임을 나타낸 폰이 있었는데 그게 마음에 든데. 어쩌라구... 겨우겨우 힘들게 설득하긴 했다.
UI를 제조사 입맛에 바꿀 수 있다는 건 좋은 점일 수도 있을지도 모를지도 모르겠지만 모르겠다. 도저히 장점을 찾을 수가 없어!

앱을 사용하던 고객이 문의를 해 왔다. 설정에 들어가서 뭔가 옵션을 설정해야 할 사항이었다. 그래서 설정에 들어가라고 알려줬다. 어떻게 들어가는지를 물어온다. 메뉴 아이콘을 눌러서 찾으라고 했다. 메뉴 아이콘이 어디있냐고 묻는다. 밑에 아이콘 4개 중에 메뉴가 있다고 알려줬다. 밑에는 아이콘이 5개 있고 메뉴는 없다고 한다. ..................... 음....???
역시 제조사 특유의 UI가 빚어낸 앱 개발사의 비운. 자 여기서 그 폰은 무엇이었을까 부터 그 폰을 입수하기 까지의 과정은 생략한다.

앱이 동작 안한다는 고객의 불평. 폰을 알아보고 "아 그거 안드로이드 버전 얼마 이상만 되요" 라는 대답을 들려줬다. 하지만 그 버전은 자기 폰에선 지원되지 않는다는 불평 불만을 들어야 했다.
사실 안드로이드 여부를 떠나서 발생할 수 있는 문제일 것이다. OS의 버전은 올라갈 수 밖에 없어 언제 사후지원이 끊길지도 모른다. 그런데 안드로이드 2.1과 2.2사이의 갭은 iOS 3와 iOS 4 사이의 갭 보다 더 크게 느껴졌다.

UI 만드는 건 상당히 어려운 일이다. 디자인은 남이 해주더라도 그걸 화면에 맞추는 건 프로그래머가 직접 해야 한다. 그리고 이 세상에 안드로이드 폰은 해상도가 천차만별 무궁무진 지랄환장...
물론 relative position 이라던지 등등 크기를 동적으로 생성하는 안드로이드 특유의 (Java의 swing과 비슷한) 기능을 이용할 수 있다. 하지만 그렇게 해 버리면 디자이너가 만든 모양에 정확히 맞출 수 있을 수 있을까는... 가끔 운이 따라줘야 할 것 같은 수준이다.

기존 디자인이 구려서(?) 새로운 디자인을 의뢰했다. 자 그럼 새 디자인에 맞게 화면을 바꿔야 겠군. Xcode를 열고 Interface builder를 열어서 새 그림을 넣고 위치를 조정하고... 응? 아 안드로이드 였군. Layout XML을 열어서 새로온 디자인의 픽셀 크기를 계산해서 표로 만들어 두고 새 디자인에 맞게 XML을 고치다가... 뭔가 안맞아서 싹 날리고 새로 XML을 코딩하고... 각 시료에 맞게 돌려보다 오차 나오면 또 고치고 nine-patch 도 손수 적용해 보고 또 각 시료에 돌려보고 또 고치고...
아이폰3G용으로 만든 앱이라도 아이폰3GS에서도, 아이폰4에서도, 아이패드에서도, 아이패드2에서도 그대로 잘 나오던데?

가끔 상사가 아이폰을 들고와서 이런 역동적인 화면을 만들어 달라고 한다. Page Curl과 Fade in/out 정도의 단순한 애니메이션 이었다. Fade in/out 정도야 간단하지만, Page Curl은... 우선 오랫만에 수학으로 머리를 풀어야겠다.
iOS, 안드로이드 둘 다 개발해 본 이들이라면 알 것이다. Cocoa의 Core Animation이 얼마나 강력하고 편하게 구축되어 있는 지를, 그리고 안드로이드 UI 애니메이션은 애니메이션을 만들어야 한다는 것을...

상사가 아이폰을 들고 와서 역동적이진 않아도 괜찮으니 모양이랑 인터페이스 만이라도 비슷하게 하랜다. 이럴 때는 Xcode for Android가 있었으면 하는 생각이 있기도 했었다. "아니 그러니까 iOS는 SDK에서 이게 지원되서 편하게 만들 수 있다니깐요. 그러니까 비교하지 말라구요!"
역시 둘 다 개발해 봤다면 iOS가 UI면에서 얼마나 친절한 배려를 SDK 차원에서 해 주는지 아주 눈물이 나더라.

안드로이드 앱 UI를 만드는 건 XML을 코딩하는 것이다.
탄식일지도 모른다. Android용 이클립스 기반 IDE에서 UI를 만든다는 것은 굉장히 불편했다. 제대로 만드려면 XML로 손수 코딩해야 한다. 미래에는 좋아지겠지 하는 일말의 희망을 안고서...

태블릿과 일부 폰에서 UI가 망가진댄다. 고치랜다. 야호 새로운 시료가 더 들어오겠군. 대신 또 야근이다!
... 좋아할 수는 없지. 해상도가 달라져서 못 돌린다면 뭐 그러려니 생각하고 고쳐야겠지. 그런데 어떤 때는 안드로이드 태블릿에서는 안드로이드 스마트폰용 앱은 아예 구동 못하게 막아줬으면 하는 생각이 들 때가 있더라. 아이폰이랑 아이패드는 왜 그리 잘 된데?

진정한 안드로이드 태블릿은 버전 뿅뿅 부터!
벌써 부터 걱정이 된다.

"팀장님! 아이폰은 백(back)버튼이랑 메뉴버튼이 없는데요?"
아이폰과 안드로이드 양쪽을 하나의 UI 모양으로 통일하자고 한다면 그냥 아이폰 쪽으로 맞추는게 정답이다. 가끔 안드로이드의 메뉴버튼이나 백버튼을 뽑아버리고 싶을 정도다. 특히 고객이 연락이 와서 메뉴나 백버튼을 이용해야 하는 기능을 어떻게 쓰는지 물어오면 난감하다. UI에서 직관적으로 메뉴버튼이나 백버튼의 존재를 알려주지 않으면 안된다. 결국은 UI는 달라질 수 밖에 없고 일은 두 배로 늘었다가 네 배로 늘어난다.

위치정보를 구하는 코드를 작성했다. 그런데 같은 장소에서 같은 환경(3G/Wifi/GPS)를 이용한다고 생각했는데 일부 폰에선 결과가 전혀 다른게 나오더라. 알고보니 위치 구하는 방법이 걔네들만 아주 특별했던 것이 있었다. 결국 해결은 못 했다. 해결 할 수가 없으니까.
파편화는 여기 저기서 나타난다. 하지만 이건 제조사가 의도한 파편화다. 덕분에 개발자들 개고생했거든.

어떤 폰은 Wifi를 끄니 위치정보를 못 구하고 어떤 폰은 3G로 위치정보를 구하니 Wifi가 켜지고 어떤 폰은 3G를 끄니 GPS가 안되고... 과연 버그인가 파편인가 정상인가... ???
명확한 정책을 가지고 있다면 이 정도 파편이야 헤쳐 나갈 수 있다. 대신 그 정책 구축에 시간이 많이 걸렸지. 요즘은 좀 나아졌을려나?

"이 폰에선 왜 안돼?" ... "팀장님 그거 OEM API라서 그 폰만 이상해요" ... "다른 폰은 잘 되니까 되게 해" ... "팀장님 그거 OEM API예요!" ... "근데 왜 다른 것들은 잘 돼?" ... "그러니까 OEM.... 그 제조사가 XX라구요!"
이 둘의 대화는 과장되었다. 하지만 진실이다. OEM API는 인터페이스만 맞추면 되지 뭐... 해답은 OEM API는 안쓰는게 좋다는 점이다. 아니면 그 폰만 버리라고 고객에게 조언하던지...

안드로이드 폰이 스펙이 더 좋은데도 왜 구형 아이폰 보다 UI가 느리냐며 구박받아서 어떻게 해명해야 할지 고민한 적이 있었다.
원래 구조가 그런걸 어떻게 하라구. iOS는 UI 반응성에 중심을 둔 UX 철학을 따르고 있는데...

"왜 이 마켓에는 없어요?" 혹은 "우리 마켓에도 올려주세요" 라는 피드백을 받았다. 귀찮지만 따로 올렸다.
마켓이 분산되어 있는 것이 좋은가 나쁜가. 판단은 각자가...

"우리 마켓에 올리려면 이렇게 해야 합니다. 고쳐서 다시 올려주세요." 라는 피드백 덕분에 소스코드 브랜치가 하나 더 생겼다.
마켓 운영사에 따라 앱에 뭔가 수정이 필요할 수도 있다. 물론 이건 그 운영사의 정책이겠지. 따라야만 할 것이다. 자. 마켓이 분산되어 있다면 무조건 좋을까 무조건 나쁠까? ... 그리고 그 특정 마켓에는 심사가 있다는 것을 알게 되었다.

"어떤 폰에서는 죽는다는 군요. 오늘 내로 해결해서 마켓에 업데이트 올리세요."
오늘내로 라는 건 뭐 일반적인 IT회사들의 용어(?)이니 그냥 넘어가자. 어떤 폰에서 죽는다면 그 어떤 폰 부터 일단 사 주셔야 할 것 아니신가. 그 보다, 이런 크리티컬한 파편화는 욕나온다. 해상도와 퍼포먼스가 넘어가자 이제는 죽는 문제인가... 개인개발자들이 만든 앱은... 뭐 어떻게 하는 걸까? 뭐 단순한 거라면 모르겠지만...

레퍼런스 폰은 구글에서 내 놓는 폰이지. 그냥 그것 뿐이야. 업데이트 하난 기가 막히게 잘 해주지. 그래도 거기에만 맞춰서 앱 만들라는 건 미친짓이야.
그래서 개발자들은 레퍼런스 폰 뿐만 아니라 이 세상의 모든 안드로이드 디바이스를 가지고 있어야 한다.

파편화의 종류는 중요한게 아니다. 질(?)이 더 중요하다. 이 폰에서 죽는 문제를 고쳤더니 다른 폰에서 죽는 증상이 나타나기 시작하는 등의 연쇄 파편 폭발이 발생하면 너무너무 억울하다.
말 그대로 연쇄폭발이다. 여기서 뻥 터진거 수습하면 갑자기 저기서 뻥 터지고 어휴 ...

마켓에 올릴 때 심사도 안거치고 바로 올릴 수도 있고 편하구나. 과연 안드로이드야.
그리고 그 다음날 업데이트 시 치명적인 결함을 유발하는 버그를 피드백 받고 심사 같은게 있을 때 좋은 점도 있다는 것을 알게 되었다.

"블랙마켓에 우리 앱이 올라왔어요~!" ... "와아~~~~!!"
농담이었지만 섬짓하지 않은가? 어차피 무료 앱이라서 손해도 없고 뭔가 고치지도 않았겠지만... 블랙마켓은 탈옥한 아이폰에서만 접근하는 cydia에 비하면 그 충격이 훨신 더 심할것이다. 왜냐하면 루팅이 필요없으니까. 오히려 cydia는 올라가면 그 만큼 인기앱이라는 것을 대신 광고해 주는 의외의 역활을 하기도 한다. (반 농담;;)

조만간 안드로이드 소스를 제조사에서 함부러 못 고치게 하겠다는 뉴스가 전해졌고 사무실은 환호와 함께 활기에 넘치기 시작했다. 그리고 수 달 째... 아직도 파편화와 싸우고 있지만 기대를 저버리지 않고 있다.
불쌍한 팀원들... 난 재빨리 앱 개발에서 탈출했었기 때문에 기뻤다. 기쁘다. 한 동안은 기쁘겠지.

소원이 하나 있다면, 제조사가 안드로이드 소스 못 고치도록 해 주시고, 해상도를 고정시켜 주시고, 시퓨도 가급적 좋은 놈들만 쓰게 해 주시고, IO도 좀 빠른 놈들로 해 주시고, 이거 고정시키고 저거 고정시켜서 파편화를 없애주소서 나무 아멘 관세음 예수 보살 알라 마리아 조상님 ... 아 근데 기왕이면 블랙마켓도 좀 없애주시고 외부에서 받은 앱 설치도 못 하게 해주시고 ... 소원이 하나론 부족하니 수십개 들어 주소서!
사실, 파편화도 숙련된 개발자 라면 그럭저럭 헤쳐나갈 지도 모른다. 파편화 목록을 줄줄이 꿰고 있을지도 모른다. 하지만 언제 어떻게 얼마나 파편이 새로 튀어나올 지는 신도 모른다.

자 마지막으로 한가지만 더 언급하자.

안드로이드는 개인정보 접근 및 앱 제어 권한이 상당히 유연하다. SMS접근되고 보내고 받고 가로채고, 전화번호부랑 통화목록 볼 수 있고 바꿀 수도 있고, 앱 맘대로 띄우고 죽일 수도 있고, 남의 앱 로그를 맘껏 쳐다볼 수 있고... 와 정말 대단하다!
개발자였기에 알게된 충격적인 사실은 날 안드로이드 혐오자로 만들었다. 여러분은 앱 설치할 때 안드로이드가 띄워주는 경고문을 모두 읽어보는가? 안드로이드 공식 마켓에도 악성 앱이 넘친다는 사실을 알고 있는가?

무식함이 몸을 고생시킨 다는 건 맞는 말이다. 무식해서 겪은 내용이 태반인 것 같다.

언젠가 시대는 바뀌고 안드로이드나 iOS도 계속 바뀌어 갈거다. 지금의 푸념은 한 순간의 먼지로 사라지겠지.

미래를 내다보자. 자 우리 모두 iOS 앱 개발자로...!! -_-;;; 도망쳐야지...

ps. 길고 길었던 글을 마구마구 잘라서 극히 주관적인 내용(사용자입장의 내용)을 덜어내니 반도 남지 않게 되어서 슬프다 ;ㅅ; 하지만 왠지 안드로이드 사용자들이 나를 혐오스럽게 볼 것 같아서 마저 올리지는 못 하겠다.

참고포스트: 레티나 디스플레이 찬양(?)

댓글 32개 :

팔팔청춘 :

잘보았어요 ㅎㅎ 많은 내용이 공감이 가는...

전...

스마트폰 크로스플랫폼을 만드는 창업준비 이제 곧 휴학생이될 대학생이에요...

익명 :

잘 보았습니다. 아직은 PC쪽 어플리케이션만 개발하지만, 곧 플랫폼 어플을 개발예정에 있습니다. 님의 글을보니 걱정이 앞서긴 합니다. 안드로이드는 정말 sdk의 배려가 없어보입니다.

예전에 xbox360과 ps3의 플랫폼에서 개발하는 어느 개발자의 말이 생각이 나네요. 똑같은 게임을 개발해도 sdk가 잘되어있는 xbox360의 개발단가가 ps3보다 훨씬 적게 단다고 했었죠.

Seorenn :

사실 다른건 어느 정도 시스템 깊숙(?)한 부분일 수도 있기 때문에 넘어가더라도 UI부분 만큼은 좀 고생할 각오를 해야합니다. 안드로이드를 사용하는 하드웨어의 해상도가 천차만별이기 때문이지요...;;

지나가던개발자 :

리얼 공감 100%!!!!!!!
얼마전엔 안드로이드 프로젝트를 맡았는데, 정말 화면UI 구성하는 게 이렇게 스트레스 받는 일인지 처음 알았습니다.
간단한 화면하나 만드는 데도 레이아웃을 몇 개를 겹쳐야 하는 건지...
리스트컨트롤하나 구현하는 데, 소스는 왜 그렇게 자잘하게 손이 가는 게 많은지...
진짜 구글은 반성해야 합니다.

익명 :

정말 공감 ㅋㅋ 안드로이드 개발하다가 파편화 때문에 진짜 스트레스 장난 아니네요.. 이폰에선 잘되는데 저폰에선 안되는게 진짜 한두가지가 아니네요 ㅠㅠ
이럴때는 정말 아이폰 개발환경이 부럽긴 하지만 뭐 평생 안드로이드만 할 것도 아니니 ㅋㅋ

익명 :

그래서 저도 아이폰 어플개발 시작합니다...--;

익명 :

1000% 공감입니다....
안드로이드 개발중인데 웹개발이 그립네요...

익명 :

...지나가다가 프로그램의 프자도 모르는 일반인이 보고 든 생각 입니다.

"...이건 무슨 카오스(혼돈)...그 자첸가"

...프로그램 이란건 이해 자체를 할 수 없습니다만, 상황이.... 무어라 단어 조차 타이핑이 되질 않는군요....

익명 :

안드로이드 개발하는데,
그놈의 파편화..
개발하면서 정말 아이폰으로 전향하고싶은생각이드는군요ㅜ

Jongha Kim :

다른건 다 괜찮았어요. 근데 카메라 개발하는데서 정말 XX소리가 절로 나오더군요 하하하하하 -_-

아직도 일부 폰에서는 카메라기능이 안된답니다. 저희는 돈없는 벤쳐라서 ㅋㅋ

Seorenn :

요즘은 많이 좋아졌어요.
대신 새로운 파편이 늘어났습니다. 주로 죽더군요. 제길...;;;

IDE개선은 여전히 안되고 있습니다.

익명 :

불평존나 많네요.
그냥 하지들 마세요.왤케 스트레스 받아가면서 하고있는지 모르겠네요.

Seorenn :

누가 좋아서 하겠나요 -_-
사회생활은 하고싶진 않지만 먹고 살기 위해 억지로 하는 일이 대부분이죠.
괜히 스트레스 많이 받는 사회가 아닙니다.
그리고 이런 걸로 스트레스라도 풀어야 살 만 하지요. 후후 -_-;;;;

익명 :

레퍼런스란 그저 업뎃만 빠른 폰일뿐....ㅜㅜ

Cootang2 :

상사, 윗사람이 지시해서 그런것도 있겠지만, 안드로이드를 너무 iOS개발하던 방식대로 접근하는게 아닌가라는 생각이드네요. 리눅스개발하면서 VS없고, 윈도우에서 쓰던 디자인툴 없다고 투덜댄다라는 느낌이랄까..

Seorenn :

Cootang2// 정확히 보셨습니다. 그리고 분명히 글 서두에도 적었지만 양쪽 다 개발해 보지 않으면 체감하기 어려운 내용입니다.

익명 :

정말 100%아니 200%공감이 갑니다.
저는 구글이 신중해졌으면 합니다.

무족건 버전 업 만을 고집하는것으로 느껴집니다.
기존에 가지고 있는 SDK bug수정은 고려하지 않는느낌 마져 느꼇습니다.

아무턴 안드로이드 개발을 하는 개발자들의 노고에 고개숙입니다.

익명 :

10000000% 공감합니다. 아이폰 하다가 안드로이드로 왔는데 여긴 정말.. 버그 리포팅 받을떈 갤ㄹㅅS2 에서 안된데요 어디서 안된데요 이렇게 주는데.. 그럼 시료라도 사주고 확인해달라고 하든가... 모든 폰에서 잘 돌아갈수 있도록 안정화된 프로그래밍을 해야 겠단 생각도 들고 거지같은 안드로이드 욕도 하고.. 그렇습니다.

fericia :

공감합니다.
진짜...구글의 무책임함하며...

공식 문서에서 조차 최대 최소값은 ???~??? 이렇게 써 놓지를 않나...
그리고 당연하다는 듯, 인자로 최대값을 받는 메서드임에도,
그 최대값을 벗어나는 값을 리턴하도록 구현된 하드웨어...

기기 식별은 완전 제조사 재량인 부분도 많고...
이런 괴악한 상황에 비할 때 iOS 개발환경은 천국이 따로 없죠.

시스템 콜하는데 랜덤하게 다운되지를 않나...

예측이 매우 어려운 반응을 보이는 것이 참 골치아프더군요.
(그리고 iOS스러운 애니메이션좀 요구하지 마세요...제발)

익명 :

아이폰, 안드로이드 둘다 시작해서 3년 정도된 개발자인데..
이클립스, 예뮬레이터, 애니메이션 말고는 공감하기 힘드네요...

결론은 안드로이드 앱을 안드로이드 답게 만들어야지 아이폰 스럽게 만들다 보니 생기는 문제네요...

양쪽 모두 개발할때는 기획을 따로따로 잡습니다..

안드로이드는 2.2기반 sdk기준으로 안드로이드 ux 및 디자인 따로 잡고,
아이폰은 4.0기반으로 ux 및 디자인 따로 잡습니다.

제가 3년간 안드로이드 하면서 격어본 유일한 파편화는 카메라쪽 api밖에 격어본적 없습니다...

참고로 말씀드리면 아이폰도 커스터마이징이 들어가면 파편화가 생깁니다..
uitabcontroller가 대표적이죠..
iOS5 업뎃으로 기존 커스터마이징 적용한 앱들은 tab이미지가 안보이는 현상이 있죠...

익명 :

아... 공감
갈길을 멀게 만드는 모바일 환경.
둘 다 사랑하고프지만 ㅠㅠ

익명 :

어느 정도는 공감합니다만, .

" 아이폰 UI 에 맞춰서..." 라는 첫 단추부터 잘못되어서 그런게 아닌가 싶습니다:3

마켓별로 branch 생기는건 정말 짜증나죠 흐흐

익명 :

안드로이드 개발자인데... 완전 공감입니다.
아이폰 갈아타려고 생각 중입니다.
위에 아이폰 따라가려고 하니 생기는 현상이라는 댓글들이 보이는데... 맞는 말입니다. 그러나...
기획자도 아이폰 쓰고, 디자이너도 아이폰 쓰고, 사장님도 아이폰 쓰고, 심지어 개발자인 저도 아이폰 씁니다.
그거 안드로이드에서는 안되요 라고 말하면(네. 저 페이지컬 효과요. 안되는건 아니겠지만 시간을 안주시니...) 어? 이게 왜 안되요? 라는 답변이...
파편화 현상도... 아 정말 화면 비율만이라도 좀 고정해줬으면...ㅠ_ㅠ

익명 :

저 고민 99% 공감해요~~
안드로이드 UI개발 정말 힘들죠~~
근데 어느 정도 인내의 한계를 넘어서니 그다지 어렵지가 않더군요...
(물론 처음보다 ^^, 물론 아이폰보단 당근 어렵죠 ^^)

그렇게 개발자로서 힘듬에도 안드로이드를 선호하는 단 한가지...
개방성과 유연성이죠 ^^

익명 :

휴......저뿐만이 아니였군요.....

익명 :

그거 하라고 개발자 고용하는겁니다.

익명 :

개인적으로 그게 구글의 문제라고 생각하지는 않습니다.
애플은 편하게 만들어 놓은 대신 비용을 청구(수수료 30%)를 가져가는 거니까요.
문제는 보통 두 개발환경의 차이를 이해 못하는 관리자라고 생각합니다.
경험상 동일한 형태, 기능의 앱이면 동일한 시간, 비용으로 될거라고 생각하던...ㅠㅜ

익명 :

잘 보았습니다. 전 안드로이드에 갓 발을 디딘 준비생입니다. 이 글을 보면서 공감한 것이 매우 많아요. UI구성이나 카메라가 제조사마다 다르고 어떤 OS는 버전업되면서 잘되던 코딩이 죽는 경우들을 보았습니다. 아직 아이폰 프로그래밍을 해보지 않아서 모르겠지만, 하지만 그래도 저마다 장단점이 있을 것이라 생각합니다. 어떤 언어이든 기계와 사용자의 중간에서 언어를 통역해줘야만 하는, 결국 추구하는 바가 똑같으니까요!

익명 :

아이폰 개발은 안해봤지만 파편화문제는 정말 공감합니다.
앱특성상 Ui를 캔버스에 직접그리는 경우가 많은데
분명 제 폰에서는 잘되는데 안된다는 불만들이 폭주해서 너무 힘드네요 모든 기기들을 사가지고 테스트해볼수도 없는 노릇이고..

Renn Seo :

아직도 안드로이드 개발 환경에 큰 변화는 없는 모양이군요.
제가 안드로이드 개발을 그만둔 뒤로 벌써 API 버전 앞에 1이 하나 더 붙어있어서 놀랬는데
그냥 SDK API만 변하고 있나봅니다.
안타깝군요.

뭐 물론 안드로이드 개발 환경이 무조건 나쁜건 아니지요.
전용 IDE를 안쓰고 개발 할 수도 있다는게 참 좋은 것이기도 하지요.
ObjC는 Xcode없이 개발하기란 너무 힘들어서 -_-;;;;;

이이영우 :

안드로이드는 그만의 장단점이 있고,
아이폰 역시 그렇죠. 저는 아이폰을 늦게 시작해서인지
오히려 아이폰이 상당히 불편하더군요,

그래도 아직까지는 안드로이드 개발자가 더 불쌍한것은 맞는것같네요

익명 :

글쎄요...제가 볼땐 아직까지 안드로이드쪽으로 깊이 들어가보지 못하신거 아닌가 싶네요.