Giter VIP home page Giter VIP logo

schoolmeal_android_old6's Introduction

header

소개

  • 2010년 C언어로 프로그래밍 입문 및 Win32 API를 통한 Windows 프로그램 개발
  • 2011년 JavaC++ 입문 및 자료구조 학습
  • 2012년 Android 입문
  • 2013년 ~ 현재 구글 Play 스토어에 급식 앱 운영 중
  • 2016년 단위 테스트의 필요성을 느끼고 JUnit4를 통한 테스트 코드 작성 방법 학습
  • 2017년 GDG Firebase 해커톤 참여, Kotlin 입문, RxJava, MVP/MVVM 패턴 등 학습
  • 2018년 Kotlin 코루틴 학습
  • ㈜버즈니 Android 클라이언트 엔지니어(홈쇼핑모아 서비스 개발)

JCenter에 배포했던 라이브러리

오픈소스를 진행 중인 프로젝트에 맞게 수정하거나, 직접 작성한 코드 중 유용한 부분을 추출하여 배포했던 라이브러리입니다. 현재 JCenter 서비스가 종료된 관계로 더 이상 새로운 업데이트는 게시하지 않고 있습니다.

오픈소스 기여

kotlinx.coroutines

  • Flow<T>.collectLatest() 함수 제안 Kotlin/kotlinx.coroutines#1269
    • Flow<T>.collect()와 달리 Flow<T>에 새로운 값이 emit 되면 기존의 collect 작업을 취소하고 새로 collect 하는 terminal 연산자.
    • 급식 앱에서, 설정된 학교(Flow<School>)가 변경될 때(emit), 로컬 DB에서 이전 학교의 급식 정보를 불러오던 작업을 '즉시' 중단하고 새 학교의 급식 정보를 불러와야 했으나 collect()로는 불가능했기에 새로운 terminal 연산자인 collectLatest()를 제안함.
    • 코루틴 v1.3.0에 실제로 해당 함수가 추가됨. 릴리즈 노트 참조.

    Flow improvements

    • Operators for UI programming are reworked for the sake of consistency, naming scheme for operator overloads is introduced:
      • collectLatest terminal operator (#1269).

detekt

  • 패키지 네이밍 규칙 수정 기여 detekt/detekt#1434

    Naming rules

    Package and class naming rules in Kotlin are quite simple:

    • Names of packages are always lowercase and do not use underscores (org.example.project). Using multi-word names is generally discouraged, but if you do need to use multiple words, you can either just concatenate them together or use camel case (org.example.myProject).

butterknife

  • annotationProcessor 관련 문제 해결방법 공유 JakeWharton/butterknife#908

    image

    • 지금까지 게시했던 댓글 중 👍를 제일 많이 획득

Material-Calendar-View

mockk

schoolmeal_android_old6's People

Contributors

boxresin avatar

Stargazers

 avatar

Watchers

 avatar  avatar

schoolmeal_android_old6's Issues

급식 정보 조회 기능

구성 요소

날짜 바

현재 보여주고 있는 급식 정보가 몇 월 며칠의 정보인지 알려준다.

급식 메뉴 탭

급식 메뉴 목록과 각 메뉴의 알레르기 정보를 보여준다.

영양 정보 탭

칼로리 등, 급식에 대한 영양 정보를 시각적으로 보여준다.

원산지 정보 탭

식자재별 원산지 정보를 표 형태로 보여준다.

식사 시간 탭

현재 보여주고 있는 급식 정보가 아침인지, 점심인지, 저녁인지 알려준다.
보고 싶은 식사 시간을 선택할 수 있게 해준다.

오류창

전체 화면을 뒤덮으며, 오류 메시지와 임의의 버튼 하나를 띄운다. 버튼은 생략할 수 있다.

스낵바

식사 시간 탭 위에서 살짝 튀어나오며, 메시지와 임의의 버튼 하나를 띄운다. 버튼은 생략할 수 있다.

로딩

중앙에서 빙글빙글 돌아가며 진행 중인 작업이 있음을 나타낸다.

시나리오

처음 생성시

  • 설정된 학교 정보를 불러온다. 없으면 오류창(메시지="학교를 설정해주세요", 버튼="학교 설정") 띄우고 종료
  • 저장된 급식 정보를 조회한다. 없으면 오류창(메시지="급식 정보를 다운로드하세요.", 버튼="다운로드") 띄우고 종료
  • 저장된 급식 정보가 10일 이상 경과하였으면 스낵바(메시지="급식 정보가 오래되었습니다.\n마지막 다운로드 %d 일 전", 버튼="새로고침") 띄우기
  • 급식 메뉴 탭, 영양 정보 탭, 원산지 정보 탭, 아침 탭, 점심 탭, 저녁 탭 중 존재하는 탭만 표시하기
  • 기본적으로 보여줄 탭 선택하기

급식 메뉴 탭, 영양 정보 탭, 원산지 정보 탭 선택시

  • 탭에 해당하는 정보를 보여준다.

아침 탭, 점심 탭, 저녁 탭 선택시

  • 탭에 해당하는 정보를 보여준다.

오류창의 "다운로드" 버튼 클릭시

  • 다운로드 중 오류가 발생했으면 오류창(메시지="오류 발생", 버튼="다시 시도") 띄우고 종료
  • 오류가 없었으면 정보 표시

스낵바의 "다운로드" 버튼 클릭시

  • 다운로드 중 오류가 발생했으면 스낵바(메시지="오류 발생", 버튼="다시 시도") 띄우고 종료
  • 오류가 없었으면 새로고침한 정보 표시

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.