포럼
XE 연동 안드로이드 앱 개발 프로젝트에 대한 조언을 구합니다.
2015.04.02 18:00
안녕하세요. 내년 2월에 졸업을 앞두고 있는 컴퓨터공학과 학생입니다.
올해 저희 학교에서 졸업 작품을 세 명이 한 조를 이루어 수행하게 되었습니다.
졸업 작품 주제를 무엇으로 할까 고민하다가 XE와 연동이 되는 안드로이드 네이티브 앱을 개발해보는건 어떨까 생각이 들었습니다.
제로보드4 시절부터 홈페이지를 운영해왔었고, 현재 XE 기반의 (아무도 찾지 않는) 홈페이지를 보유하고 있습니다.
이미 시중에 XE와 연동되는 안드로이드 앱이 나와있는걸로 알고 있지만, 이번 프로젝트를 통해 XE의 구조를 더 자세히 이해하고, 웹과 앱을 연동시키는 원리를 이해하고자 이 분야를 선택하게 되었습니다.
프로젝트 시작에 앞서 여러 가지 연구를 해본 결과, 웹과 앱을 연동시키는 데 XML 또는 JSON이 이용되고, 앱 측에서 이 데이터를 가공하여 필요한 변수로 받아들인다는 사실을 알았습니다.
아래는 제가 생각해본 프로젝트 산출물의 구조입니다.
먼저 앱측에서 프로젝트 모듈을 호출(①)하면,
프로젝트 모듈은 기존의 XE 모듈(메뉴, 회원목록, 문서 등...)의 함수를 호출(②)합니다.
호출된 함수들은 모듈 측으로 결과물(성공/실패 또는 결과값의 배열)을 반환(③)합니다.
모듈은 View를 통해 반환된 결과물을 JSON형태로 출력하고, 앱은 JSON 형태의 값을 받아들이고(④),
이 값을 가공하여 UI에 뿌려줍니다.
이러한 구조로 프로젝트를 진행하려고 하는데, 여러분들의 조언을 듣고 싶어서 글을 올리게 되었습니다.
잘못된 부분이나 고쳐야 할 점 지적해주시면 감사하겠습니다.
지금까지 두서없는 긴 글 읽어주셔서 감사합니다.
댓글 5
-
시니시즘
2015.04.02 22:14
-
시니시즘
2015.04.02 22:17
어차피 안드로이드에서 Http 프로토콜로 글같은거 등록할 땐 OkHttp 같은거 쓰실테고 양식만 잘 맞춰서 보내면 되는거기 때문에 근데 문제는 Json으로 받을 때 문제네요. 근데 궁금한데 Session 처리 같은건 어떻게 구현하실 건가요? 예를들어 관리자만 접근할 수 있는 글이라면 Session이 유지되어야 그 글을 받아올 수 있을텐데.
-
푸른쉼터
2015.04.02 22:34
현재 조금 무식한 방법으로 구현해놓은 상태입니다...
위에 올린 그림과 같이 JSON 출력용 모듈을 제작하고 있는데
앱에서 XE 모듈로 글쓰기 명령, 제목, 내용을 담아 POST로 호출하면
모듈은 view에서 Document 컨트롤러의 insertDocument 함수를 호출하면서 글쓰기가 완료됩니다.
세션 유지는 쿠키 리스트를 저장해두는 클래스를 만들어서 구현하였습니다.
API를 이용하면 된다고 하셨는데, 이게 모듈명.api.php 가 있는것들만 되는걸로 알고있습니다.
그리고 원하는 함수가 없을 수도 있구요... 이러한 경우에는 어떻게 처리하는게 좋을까요?
(P.S. 조회수 1800에 첫 댓글이네요 감사합니다 ㅜㅜ)
-
시니시즘
2015.04.03 01:11
ㅋㅋㅋ XE는 PHP 기반이니 안드로이드 전문가는 상대적으로 드물죠. JSP 기반이면 몰라도. API 파일이 없을 경우 첫째로 github xe 프로젝트 홈에 이슈를 제기해보실 수 있습니다. 하지만 시간 여건상 마냥 기다릴 수 없다고 생각드시면 android라는 이름의 모듈을 하나 만드셔서 api를 제공하지 않는 기능을 여기에 다 모으세요. 처음부터 다 구현하시려고 하시면 너무 광범위하니까 우선 순위를 정하시는게 좋겠네요. 1. 리스트 2. 글읽기. 3. 글쓰기 그리고 중요한건 불필요한 기능은 일단 빼세요. 예를 들어 쪽지 보내기 이런 기능은 하나로 묶어서 gcm 관련 기능을 따로 만드시는게 좋겠네요. 누가 댓글을 달면 푸쉬가 온다거나 다 비슷한 기능이니. 그런건 차후에 만드는 방향으로 하는게 좋겠네요. 뭐 저도 댓글로 적는거라 이 정도 의견 정도 밖에는...
-
GG
2015.04.03 04:15
view 까지 다룰 줄 아신다면 결과값을 Context::set 으로 넘기시고 스킨 html 파일에서 json 화 시킨 다음 exit;해버리면 코어에서 자동으로 딸려 나오는 html이 없는 text 상태로 json 을 볼 수 있습니다.
- 우주의 얕은 팁 GG CAST ㅡ,.,ㅡ;
api를 이용하시면 됩니다. 근데 XE에서 Json을 약간 특이한 방식으로 제공해서 약간 시행 착오는 있으실 거 같네요.