iOS에서 Android로 앱을 포팅하고 있습니다. 무엇을 알아야합니까? [닫은]


15

어떤 함정을 피해야합니까?

  • Objective-C 개발자는 어떤 Java 언어 패러다임을 지속적으로 오해합니까? Java로 프로그래밍하는 법을 배웠지 만 Objective-C를 제외하고는 수년간 일했습니다.
  • Android와 iOS의 디자인 패턴은 어떻게 다릅니 까?
  • 직접 전환 한 경우 Android의 어떤 부분이 혼란 스럽거나 배우기 위해 더 오래 걸렸습니까?
  • Eclipse가 Android 용 최고의 OS X IDE입니까?

기록을 위해 내 앱은 UIKit 및 Foundation과 매우 밀접하게 연결되어 있으므로 "porting"이라는 단어가 잘못되었을 수 있습니다. 실제로 Android 용으로 완전히 다시 작성하겠습니다. 코드 재사용이 없습니다. 또한 Android를 배우기 위해이 작업을 수행하고 있으므로 바로 가기보다 포트에서 실패하고 Android를 배우는 것이 좋습니다.


약간의 배경 지식으로,이 질문은 Stackoverflow에서 볼 수있는 질문 유형에 의해 촉발되었습니다. Obj-C를 작성하려고 할 때 실수하는 실수로 누군가의 배경이 무엇인지 (C # 또는 Java) 알 수있는 경우가 많습니다. Java 개발자들이 눈을 돌리고 "실리 Objective-C 개발자는 배우지 못할까?"라는 실수를 피하고 싶습니다.


2
Is Eclipse the best OS X IDE for Android?네, ADT는 마지막으로 시도한 netbeans에서 제대로 작동하지 않았습니다. Eclipse는 권장되는 IDE입니다.
Keyo

@Keyo : 응? 1 년 반 전에 Netbeans에서 시도했을 때 꽤 잘 작동했습니다. 확실히 그 시간이 지날수록 더 좋아질 것입니까?
TheLQ

@Nassign의 답변으로 답변에 대한 답변 : Stackoverflow에 게시하면 더 많은 답변을 얻었지만 프로그래머를 탐색하면 여기에 마이그레이션되는 이러한 유형의 질문이 많이있는 것처럼 보입니다. 그 포럼에 더 적합하다면, 저쪽에 물어볼 수 있습니다.
kubi

스택 오버 플로우에 배치하면 더 많은 답변을 얻을 것이라고 생각합니다.
Nassign

1
@kubi 이것은이 질문을하기에 좋은 장소 이며이 사이트의 목적에 맞습니다 : 희망이 있으시면 관심을 가질 것입니다.

답변:


11

iOS에서 Android로 앱을 포팅하고 있습니다. 다른 사람의 앱으로 포트를 수행하려고하지만 그럼에도 불구하고 아무것도하지 않습니다.

먼저 사용자 기반이 장치와 상호 작용하는 방식이 크게 다르다고 말할 수 있습니다. 이 중 많은 부분은 실제 응용 프로그램 디자인과 장치 작동 방식에서 비롯됩니다.

몇 가지 일반적인 것들 :

  • 안드로이드 기기에는 가로가 거의 필요합니다
  • Android 앱은 적극적으로 사용되지 않을 때 계속 실행되는 경향이 있으므로 네트워크 문제, GPS 등을 고려해야합니다.
  • 장치 분할, 수많은 안드로이드 장치 및 화면 해상도가 있습니다. 이곳은 상대적 레이아웃과 9 패치 이미지가 매우 편리합니다.

많은 사람들이 처음에 생각하지 않는 큰 Your UI can not be exactly the same on both devices것은 비슷할 수 있지만 iPhone UI를 Android 기기로 이식하면 잘 작동하지 않을 것입니다.

몇 가지 이유 :

  • 긴 터치 상황에 맞는 메뉴
  • 메뉴 팝업
  • 해상도 및 종횡비가 다른 장치 분할
  • 작동하는 동일한 컨트롤이 아님

백엔드는 실제로 Java 및 Android SDK로 작업하고있는 주요 작업을 구현하기 때문에 큰 문제가되지 않습니다. 내 가장 큰 문제는 사용자가 기대하는 것과 UI 동작 및 차이점에서 비롯된 것입니다. 때로는 더 좋으며 때로는 더 나쁩니다. 그것은 실제로 앱이하는 일에 달려 있습니다.

편집하다

방금 질문의 실제 부분에 대답하지 않았다는 것을 깨달았습니다.

Obj-C가 오해하는 큰 언어 패러다임이 없다고 말하지는 않을 것입니다. Java가 OOP 관점에서 원하는 것을 얻는 것이 더 간단하다고 말할 수 있습니다. (나는 정말로 .NET 및 Java로만 작업하고 지나칠 수있는 충분한 Obj-C 만 알고 있다고 말해야합니다.)

나는 확실히 Eclipse를 사용하고 잠시 IntellijIdea를 사용하여 피곤했으며 특정 일을하려고하는 데 많은 문제가 생겼습니다.


"가로가 필요합니다"라고 말하면 초상화 외에 다른 의미입니까? 내 응용 프로그램은 iOS의 백그라운드에서 몇 가지 작업 만 수행합니다. 백그라운드에서 아무것도 할 필요가 없으면 백그라운드에서 실행을 명시 적으로 선택 해제해야합니까?
kubi

@kubi yea는 초상화 외에도 장치를 사용할 때 장치를 가로로 놓는 하드웨어 키보드를 가지고 있기 때문에 초상화와 함께. 백그라운드에서 사용자가 앱을 전환 할 때 앱이 계속 실행됩니다.
msarchet

+1 (또는 그 이상) : "iPhone UI를 Android 기기로 이식하면 제대로 작동하지 않습니다." 사실입니다. 실제로 사용 가능한 lib가 다르기 때문에 UI가 상당히 다를 수 있습니다.
Dan Rosenstark

IntelliJ Idea는 Android 개발에 적합합니다. 그것을 사랑하십시오.
Alexander Babaev

3

[이 답변은 일종의 엉뚱한 소리입니다. 삭제하려고했지만 흥미로울 것이라고 생각했습니다. 삭제해야 할 경우 댓글로 알려주세요.]

Android에서는 작동하지 않지만 Java 및 iOS (Obj-C 사용)에서는 작동합니다. Java 개발에서 실제로 다른 점은 IDE가 얼마나 많은 도움을 줄 수 있는지입니다 (사람들은 IDE를 사용하지 말라고 말할 것입니다. . XCode는 일반적으로 가장 간단한 구문 오류를 정확하게 감지 할 수 없습니다 (언어의 구조로 인해 생각합니다). 반면에 자바에서는 IDE가없는 것보다 훨씬 빠르게 이동할 수 있습니다. 호출 cient 프로그래밍 및 메소드 작성과 같은 멋진 작업을 수행 할 수도 있습니다. 예를 들어 Eclipse에서 입력하면

blah.doIt(firstObj, secondObj);

firstObj하고 secondObj있는 String경우, IDE는 나에게 SIG와 방법을 만들 수있는 옵션을 줄 것이다 "공공 무효 작은 동전 (문자열 firstObj, 문자열 secondObj을)." 정말 멋지다. 그리고 빙산의 일각 : IDE는 당신의 친구이다. IntelliJ가 더 시원 할 수도 있다고 들었습니다 (시험에서 그렇지는 않았지만).

이 답변에 함정이 있습니까? 아마도 IDE가 Obj-C와 Java에서 동일한 역할을한다고 생각합니다. Java에서 IDE는 놀랍게도 어려운 일을 할 수 있습니다. Java의 방식으로 인해 자동 리팩토링은 XCode보다 100 배 강력합니다. 이는 나중에 디자인 문제를 연기 할 수 있음을 의미합니다.


AppCode 덕분에 이것에 대한 많은 생각이 바뀌 었습니다. 그것은 굉장. 그럼에도 불구하고 같은 이름의 것을 구별 할 수는 없지만 확실히 많은 작업을 수행합니다.
Dan Rosenstark
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.