다화면에 대응하는 스케치북 개발에서 했던 일과 소감 총결산
개시하다
본고는 여러 창의 스케치북 개발에서 했던 간단한 해설과 소감을 총결하였다.앞으로 여러 창의 스케치북 개발을 연구하는 쪽의 참고가 되었으면 좋겠습니다.
실제로 조작하고 싶은 사람은 이쪽부터 하세요.다중 창은 스케치북이 가로로 되어 있을 때만 유효합니다.
https://play.google.com/store/apps/details?id=com.wantedly.android.visit&hl=ja
해보신 소감.
안드로이드 디벨로퍼스의 공식 영상에서 "프래그먼트 같은 도구를 쓰면~ 의외로 간단하다"라고 언급해 실제로 해보니 "의외로 간단하다"는 결과가 나왔다.반면'단순'에 대응하지 못하면 원래 디자인이 좋지 않을 수도 있다.
https://www.youtube.com/watch?v=x_gxZd9kLv4#t=7m00s
개발자들이 비교적 신경 쓰는 비용 문제에 관해서는 이번 개발 기간(코딩, 테스트)이 일주일 정도밖에 되지 않았고, 앞으로는 태블릿PC 처리에 따라 유지보수 부담이 거의 증가하지 않을 것으로 보인다.이 점도 응용 프로그램과 디자인 방법을 보고 참고만 제공해야 한다.
이번 태블릿PC 개발을 통해 생각보다 훨씬 간단해졌습니다. 앞으로 제가 관련된 응용 프로그램을 모두 태블릿PC로 만들고 싶습니다.
개발 전제
여기에도 Fragment를 사용해서 디자인을 했다고 기재되어 있습니다.
http://developer.android.com/guide/practices/tablets-and-handsets.html#Guidelines
했던 일 #1 레이아웃 디자인
이번에 개발한 앱은 리스트와 세부 화면이 다수를 차지해 2개 화면으로 구성됐다.
또한 레이아웃을 효과적으로 이용하기 위해 위의 그림과 같은 화면 구성을 채택했다.한편 이번 개발의 목표는 ③의 대응이다.②의 해당사항은 아래 항목을 확인하십시오.간단하게 대처할 수 있다.
http://qiita.com/suzukihr/items/1a3204e6c713cf870f8d
했던 일 #2 레이아웃 만들기
스마트폰/태블릿PC는 세로로 사용할 때 다음과 같은 배치를 준비했다.
activity_main.xml<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
res/layout-sw600dp-land/폴더*를 만들고 두 창의 레이아웃을 준비하여 한 창의 레이아웃을 대체합니다.
activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:divider="?android:attr/dividerHorizontal"
android:orientation="horizontal"
android:showDividers="middle">
<FrameLayout
android:id="@+id/container"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<FrameLayout
android:id="@+id/container_right"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2" />
</LinearLayout>
* 자세한 내용은 아래 링크를 참조하십시오.
http://developer.android.com/design/style/metrics-grids.html
http://developer.android.com/guide/practices/screens_support.html
했던 일 #3 사건 처리의 실현
MainActivity는 MainFragment, DetailActivity는 DetailFragment를 의미하며, 태블릿PC가 대응하기 전에 MainActivity(또는 MainFragment) 내에서 다음과 같은 사건 처리를 했다.
MainActivity.java(MainFragment.java)...
// MainActivity の場合
setContentView(R.layout.activity_main);
...
Intent intent = new Intent(this, DetailActivity.class);
startActivity(intent);
...
변경은 다음과 같습니다.오른쪽에 View가 있으면 리플렉스 (또는 add) Fragment에 있을 수 있습니다.이벤트 처리는 MainActivity 내에서 수행됩니다.
MainActivity.java...
setContentView(R.layout.activity_main);
...
if (findViewById(R.id.container_right) != null) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.container_right, new DetailFragment())
.commit();
} else {
Intent intent = new Intent(this, DetailActivity.class);
startActivity(intent);
}
...
2 창에 대응하는 기본 처리는 다음과 같다.(간단한 설명을 위해 DetailActivity(DetailFragment)에 전달된 매개변수는 생략됨)
이외에도 화면이 회전할 때의 처리를 생략하였습니다(아래 문서를 참조하십시오).
읽을 문서
태블릿PC를 개발할 때 참고할 수 있는 공식 문서 링크다.
안드로이드 디벨로퍼스의 공식 영상에서 "프래그먼트 같은 도구를 쓰면~ 의외로 간단하다"라고 언급해 실제로 해보니 "의외로 간단하다"는 결과가 나왔다.반면'단순'에 대응하지 못하면 원래 디자인이 좋지 않을 수도 있다.
https://www.youtube.com/watch?v=x_gxZd9kLv4#t=7m00s
개발자들이 비교적 신경 쓰는 비용 문제에 관해서는 이번 개발 기간(코딩, 테스트)이 일주일 정도밖에 되지 않았고, 앞으로는 태블릿PC 처리에 따라 유지보수 부담이 거의 증가하지 않을 것으로 보인다.이 점도 응용 프로그램과 디자인 방법을 보고 참고만 제공해야 한다.
이번 태블릿PC 개발을 통해 생각보다 훨씬 간단해졌습니다. 앞으로 제가 관련된 응용 프로그램을 모두 태블릿PC로 만들고 싶습니다.
개발 전제
여기에도 Fragment를 사용해서 디자인을 했다고 기재되어 있습니다.
http://developer.android.com/guide/practices/tablets-and-handsets.html#Guidelines
했던 일 #1 레이아웃 디자인
이번에 개발한 앱은 리스트와 세부 화면이 다수를 차지해 2개 화면으로 구성됐다.
또한 레이아웃을 효과적으로 이용하기 위해 위의 그림과 같은 화면 구성을 채택했다.한편 이번 개발의 목표는 ③의 대응이다.②의 해당사항은 아래 항목을 확인하십시오.간단하게 대처할 수 있다.
http://qiita.com/suzukihr/items/1a3204e6c713cf870f8d
했던 일 #2 레이아웃 만들기
스마트폰/태블릿PC는 세로로 사용할 때 다음과 같은 배치를 준비했다.
activity_main.xml<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
res/layout-sw600dp-land/폴더*를 만들고 두 창의 레이아웃을 준비하여 한 창의 레이아웃을 대체합니다.
activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:divider="?android:attr/dividerHorizontal"
android:orientation="horizontal"
android:showDividers="middle">
<FrameLayout
android:id="@+id/container"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<FrameLayout
android:id="@+id/container_right"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2" />
</LinearLayout>
* 자세한 내용은 아래 링크를 참조하십시오.
http://developer.android.com/design/style/metrics-grids.html
http://developer.android.com/guide/practices/screens_support.html
했던 일 #3 사건 처리의 실현
MainActivity는 MainFragment, DetailActivity는 DetailFragment를 의미하며, 태블릿PC가 대응하기 전에 MainActivity(또는 MainFragment) 내에서 다음과 같은 사건 처리를 했다.
MainActivity.java(MainFragment.java)...
// MainActivity の場合
setContentView(R.layout.activity_main);
...
Intent intent = new Intent(this, DetailActivity.class);
startActivity(intent);
...
변경은 다음과 같습니다.오른쪽에 View가 있으면 리플렉스 (또는 add) Fragment에 있을 수 있습니다.이벤트 처리는 MainActivity 내에서 수행됩니다.
MainActivity.java...
setContentView(R.layout.activity_main);
...
if (findViewById(R.id.container_right) != null) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.container_right, new DetailFragment())
.commit();
} else {
Intent intent = new Intent(this, DetailActivity.class);
startActivity(intent);
}
...
2 창에 대응하는 기본 처리는 다음과 같다.(간단한 설명을 위해 DetailActivity(DetailFragment)에 전달된 매개변수는 생략됨)
이외에도 화면이 회전할 때의 처리를 생략하였습니다(아래 문서를 참조하십시오).
읽을 문서
태블릿PC를 개발할 때 참고할 수 있는 공식 문서 링크다.
이번에 개발한 앱은 리스트와 세부 화면이 다수를 차지해 2개 화면으로 구성됐다.
또한 레이아웃을 효과적으로 이용하기 위해 위의 그림과 같은 화면 구성을 채택했다.한편 이번 개발의 목표는 ③의 대응이다.②의 해당사항은 아래 항목을 확인하십시오.간단하게 대처할 수 있다.
http://qiita.com/suzukihr/items/1a3204e6c713cf870f8d
했던 일 #2 레이아웃 만들기
스마트폰/태블릿PC는 세로로 사용할 때 다음과 같은 배치를 준비했다.
activity_main.xml<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
res/layout-sw600dp-land/폴더*를 만들고 두 창의 레이아웃을 준비하여 한 창의 레이아웃을 대체합니다.
activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:divider="?android:attr/dividerHorizontal"
android:orientation="horizontal"
android:showDividers="middle">
<FrameLayout
android:id="@+id/container"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<FrameLayout
android:id="@+id/container_right"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2" />
</LinearLayout>
* 자세한 내용은 아래 링크를 참조하십시오.
http://developer.android.com/design/style/metrics-grids.html
http://developer.android.com/guide/practices/screens_support.html
했던 일 #3 사건 처리의 실현
MainActivity는 MainFragment, DetailActivity는 DetailFragment를 의미하며, 태블릿PC가 대응하기 전에 MainActivity(또는 MainFragment) 내에서 다음과 같은 사건 처리를 했다.
MainActivity.java(MainFragment.java)...
// MainActivity の場合
setContentView(R.layout.activity_main);
...
Intent intent = new Intent(this, DetailActivity.class);
startActivity(intent);
...
변경은 다음과 같습니다.오른쪽에 View가 있으면 리플렉스 (또는 add) Fragment에 있을 수 있습니다.이벤트 처리는 MainActivity 내에서 수행됩니다.
MainActivity.java...
setContentView(R.layout.activity_main);
...
if (findViewById(R.id.container_right) != null) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.container_right, new DetailFragment())
.commit();
} else {
Intent intent = new Intent(this, DetailActivity.class);
startActivity(intent);
}
...
2 창에 대응하는 기본 처리는 다음과 같다.(간단한 설명을 위해 DetailActivity(DetailFragment)에 전달된 매개변수는 생략됨)
이외에도 화면이 회전할 때의 처리를 생략하였습니다(아래 문서를 참조하십시오).
읽을 문서
태블릿PC를 개발할 때 참고할 수 있는 공식 문서 링크다.
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:divider="?android:attr/dividerHorizontal"
android:orientation="horizontal"
android:showDividers="middle">
<FrameLayout
android:id="@+id/container"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<FrameLayout
android:id="@+id/container_right"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2" />
</LinearLayout>
MainActivity는 MainFragment, DetailActivity는 DetailFragment를 의미하며, 태블릿PC가 대응하기 전에 MainActivity(또는 MainFragment) 내에서 다음과 같은 사건 처리를 했다.
MainActivity.java(MainFragment.java)
...
// MainActivity の場合
setContentView(R.layout.activity_main);
...
Intent intent = new Intent(this, DetailActivity.class);
startActivity(intent);
...
변경은 다음과 같습니다.오른쪽에 View가 있으면 리플렉스 (또는 add) Fragment에 있을 수 있습니다.이벤트 처리는 MainActivity 내에서 수행됩니다.MainActivity.java
...
setContentView(R.layout.activity_main);
...
if (findViewById(R.id.container_right) != null) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.container_right, new DetailFragment())
.commit();
} else {
Intent intent = new Intent(this, DetailActivity.class);
startActivity(intent);
}
...
2 창에 대응하는 기본 처리는 다음과 같다.(간단한 설명을 위해 DetailActivity(DetailFragment)에 전달된 매개변수는 생략됨)이외에도 화면이 회전할 때의 처리를 생략하였습니다(아래 문서를 참조하십시오).
읽을 문서
태블릿PC를 개발할 때 참고할 수 있는 공식 문서 링크다.
http://developer.android.com/guide/practices/screens_support.html
http://developer.android.com/training/multiscreen/index.html
http://developer.android.com/guide/practices/tablets-and-handsets.html
http://developer.android.com/training/basics/fragments/index.html
http://developer.android.com/guide/topics/resources/runtime-changes.html
Reference
이 문제에 관하여(다화면에 대응하는 스케치북 개발에서 했던 일과 소감 총결산), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/suzukihr/items/f0cabf6d8a9356bd7bb7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)