Android에 새로운 기능을 설치할 때 고려해야 할 사항

4940 단어 Android
이 글은 만고 고급 달력 2019 10일째 글입니다.
만고는 개발 중예비 학교.
올해 들어 React의 웹에서 Kotlin 언어의 Android 개발에 이르기까지 분배가 바뀌었고, N학원의 새로운 기능을 실시하는 과정에서 웹에서 의식하지 못한'Android 특유의 과제'를 몇 가지 만났다.
앞으로의 개발에서 같은 과제를 만나지 않기 위해 안드로이드에서 새로운 기능을 실시할 때 고려해야 할 것들을 정리했다.
(코드를 쓰기 전의 말을 중심으로 하기 때문에 iOS에서도 공통된 부분이 많다고 생각한다.)

1. API 가져오기 실패 시 오류 처리


웹의 경우 API의 통신 오류가 브라우저의 오류로 표시되어 브라우저의 재설치를 실행하면 해결되지만 Android는 반드시 스스로 그것을 준비해야 한다.
그리고 안드로이드의 통신 환경은 종종 불안정해지기 때문에 더욱 주의해야 한다.
아래의 요점을 구체적으로 고려하다.

오류가 발생했을 때 표시되는 항목

  • Toast 섹션으로 오류 표시
  • Dialog로 오류 표시
  • 잘못된 화면 보이기
  • N학원 안드로이드는 다음과 같은 대책을 취했다.
    Toast 디스플레이
    Dialog 디스플레이
    잘못된 화면 표시
    프로필 설정 화면
    교재 선택 화면
    강의 일람 화면



    큰 분류를 보면 화면 이동 전의 오류는 Toast(일부는 Snackbar로 이동)에서 오류를 표시하고, 화면 이동 후의 오류는 Dialog와 오류 화면에서 오류를 표시한다.
    이 두 가지 모델에 대해 만약에 규칙을 제정하고 공동화를 실현할 수 있다면 간결하게 실시할 수 있기 때문에 먼저 규칙을 보완하는 것부터 시작한다.
    N학원 안드로이드는 아직 규칙을 정하지 않았고 화면에 따라 대응이 제각각이다...)

    오류가 발생했을 때 재부팅 / 재시도하는 방법

  • 동일한 처리를 다시 수행하십시오
  • 재부팅 버튼 설정
  • 화면을 아래로 드래그하여 다시 로드
  • 상술한 이미지의 순서에 따라 이런 대책을 취하다.
    위의 그림과 같이 저장 버튼을 다시 누르거나 Dialog의 재시도 버튼을 누르는 절차는 이해하기 쉽지만 아래로 내려가는 방법은 어떤 화면이 필요할 수 있습니다.
    새로운 기능을 만들 때 이런 오류 처리는 떨어지고 오류가 발생하면 화면이 하얗게 변하기 때문에 사전에 잘 고려해야 한다.

    2. 마운트 시 대기 처리


    이것은 웹에서도 통용되지만 불러오는 과정을 어떻게 처리하는지 고려해야 한다.
    Android의 통신 환경이 불안정해지기 쉬우므로 로드가 길어지기 쉽다고 여러 번 말했습니다.
    만약 그 마운트 화면이 설치되지 않고 하얀 화면이 지속되면 사용자가 떠나기 때문에 어떤 디스플레이가 필요하다.
    아래의 요점을 구체적으로 고려하다.

    디스플레이 유형 로드

  • 전체 화면에 로드 표시
  • 화면의 일부분에 마운트 표시
  • N학원 안드로이드, 예를 들면 다음과 같다.
    전체 화면
    부분 화면
    교재 화면
    강의 상세 모드


    사용자의 측면에서 볼 때 화면 전체의 로딩이 지속되는 것은 고통스러울 것 같아서 얻은 데이터를 분할하는 등 화면 일부의 로딩으로 완성하려고 한다.
    사용자가 필요로 하는 데이터를 어떻게 신속하게 표시하는지에 착안하여 API의 설계와 분할을 하는 것이 가장 이상적이다.
    더욱 사용하기 쉬운 응용 프로그램이 되기 위해서는 미리 화면을 불러오는 것을 고려하는 것이 중요하다.

    3. Activity가 폐기되었을 때의 처리


    Android에서 응용 프로그램이 백그라운드로 이동할 때 터미널의 자원을 확보하기 위해 Activity가 삭제될 수 있습니다.
    Activity가 폐기되면 응용 프로그램으로 돌아갈 때 화면을 다시 그려야 하기 때문에 입력한 값이 사라지기 때문에 필요한 정보는 Activity가 폐기된 후에도 남아 있는 위치(Saved InstanceState 또는 DB)에 넣어야 합니다.
    그러나 Saved InstanceState의 용량은 1MB의 제한 사항 이 있기 때문에 모든 데이터를 보유할 수 없습니다.
    백그라운드에서 복구하는 데 필요한 데이터와 API를 통해 다시 가져온 데이터를 미리 고려하여 의외의 문제를 피할 수 있습니다.
    Activity 폐기에 대한 자세한 설명과 동작 확인 방법은 항상 이 글을 참고하십시오.
    [Android]saved InstanceState의 의미와 개발자 옵션 [초보자용]

    4. 리턴 키로 화면 처리


    Android의 백버튼은 기본값이므로 제어도 고려해야 합니다.

    화면의 복귀 위치를 제어하다


    예를 들어 로그인 화면에서 홈 화면으로 이동할 때 아무것도 고려하지 않고 실행하면 홈 화면에서 리턴 키를 누르면 로그인 화면으로 돌아간다.
    리턴 키를 사용하지 않고 원하지 않는 화면으로 돌아가기 위해서는 액티비티/Fragment를 통해 화면의 역사 기록을 관리해야 합니다. 리턴 키를 누르고 덮어쓰는 것을 감지해야 합니다.
    기능을 실현할 때 화면 이동도를 만들고 각 화면에 있는 키의 이동 목적지를 고려하면 안심할 수 있다.

    Toolbar의 리턴 키를 통해 화면의 귀환 목적지를 제어합니다


    백키뿐만 아니라 Toolbar에도 등 화면을 되돌려 놓을 수 있다.처럼 백키와 행동이 뚜렷한 버튼이라면 처리도 백키와 같지만 다른 상황에서 백키와 구별하여 고려할 수 있다.
    예를 들어 아래 화면처럼 왼쪽 상단에 x 단추를 설치하면 이 단추로 화면을 어느 정도 되돌릴지 백키와 분리해서 고려한다.

    (물리기초0회부터(무료회)
    Toolbar의 반환 버튼도 백버튼과 같다고 생각하면 이후 행동이 이상해지기 때문에 우리도 마찬가지로 화면 이동도를 만들어 규격을 미리 결정합시다.

    5. 직접 링크를 통해 응용 프로그램 처리 열기


    같은 응용 프로그램이나 브라우저 등 다른 응용 프로그램에서 URL을 클릭할 때 응용 프로그램의 임의의 페이지로 이동해야 하는지 고려합니다.
    직접 연결은 일반적인 화면 이동과 다르기 때문에 필요한 API를 얻었는지, 로그인하지 않은 상태에서 튀어나왔는지 고려해야 한다.
    다른 한편, 직링크는 사용자의 접근을 편리하게 하는 데도 필요하기 때문에 기능을 실시하기 전에 연구를 잊지 말아야 한다.
    새로운 기능을 설치할 때 이런 요소에 대한 고려가 누락되면 나중에 힘들어질 수 있기 때문에 체크리스트로 사용하고 싶습니다.
    또 새로운 요소가 나오면 수시로 업데이트한다.

    좋은 웹페이지 즐겨찾기