ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [DevDiary] 상반기 리뷰
    앱등이에게 살충제를 뿌린다./일기는 일기장에 2017. 7. 13. 13:02

    <하반기를 맞이하는 나의 상태>




    상반기는 G프로젝트만을 진행했다.

    아직 오픈은 하지 않았고, 8월 중 오픈 예정이다.

    프로젝트를 하며 경험한 것들을 기록해본다.


    1. 간단 에디터 구현.

    ImagePickerController를 사용하지 않고 Photos Framework를 사용하여 커스텀 Picker를 구현할 수 있었다.

    카메라 또한 AVCaptureSession을 사용하여 커스텀으로 구현할 수 있었다.


    Photos framework http://rhammer.tistory.com/229

    AVCaptureSession http://rhammer.tistory.com/231



    2. Push, Pop, Present, Dismiss 커스텀 트랜지션 구현

    <출처: https://www.raywenderlich.com/110536/custom-uiviewcontroller-transitions>


    Custom Transition http://rhammer.tistory.com/259



    3. Core Animation

    위 2번의 Custom트랜지션을 구현하면서 UIView.animateWithDuration()메소드를 많이 사용했다.

    하지만 디자인부서에서 트랜지션의 custom timing function을 요구하여 Core Animation을 사용해야했다.

    Ex) CAMediaTimingFunction(controlPoints: 0.3, 1.5, 0.5, 0.9)

    Core Animation http://rhammer.tistory.com/259

    Custom timing function의 종류 http://easings.net/ko


    4. AVAudioSession (다른 앱의 오디오출력 제어)

    이건 바로 어제 작업했던 내용인데, 음악을 들으면서 페이스북과 인스타그램 앱을 사용할때

    페이스북: 동영상을 키면 음악이 일시정지되고 동영상을 끄면 음악이 다시 재생됨 (AVAudioSessionCategorySoloAmbient)

    인스타그램: 동영상을 키던 말던 음악은 계속나오고 동영상의 소리와 음악이 동시에 나옴 (AVAudioSessionCategoryAmbient)

    이런 설정은 AVAudioSession의 category설정을 변경함으로써 수정할 수 있다.


    5. 스플래쉬 애니메이션 + 로그인/로그아웃 시나리오

    스플래쉬화면에 애니메이션을 제공하기 위해 실제 Splash에서 이어지는 UIViewController를 만들어 이 곳에서 스플래쉬를 구현한다.

    이 ViewController에서는 스플래쉬를 애니메이션을 보여주며 원하는 작업을 마음껏 추가할 수 있다.

    Ex) 로그인여부 파악하기, 메인화면에 필요한 데이터 미리 로드하기.


    6. Notification 설정

    Notification의 payload에 badge필드를 OS가 알아서 카운트 업데이트를 한단걸 알았다. 즉 앱의 Badge count를 바꾸는건 푸쉬와 개발자의 코드. 두 가지 방법이 있단걸 알았다.

    Notification을 받았을 때의 App Status에 따른 핸들링을 할 수 있었다.

    Ex) App Not running, App Running Background, App Running Foreground

    Running Background와 Running Foreground를 구분하여 핸들링하기가 힘들었는데, application.applicationState값으로 분기처리하면 된다는걸 알았다.


    UNNotificationAction를 구현할 수 있었다. 이건 UIAlerController를 띄우듯 간단하게 구현이 되더라.


    6. Peek and pop 구현하였다.

    http://rhammer.tistory.com/249


    7. Parallax Scroll 구현

    UICollectionViewCell에 UIImageView의 centerXConstraint를 조정하여 Parallax Scroll을 구현할 수 있었다.


    8. Snap Scroll 구현

    UICollectionViewFlowLayout의 targetContentOffset메소드를 오버라이드하여 스크롤의 강도가 약할때 Snap Scroll을 할 수 있도록 구현했다.


    9. 앱권한 Privacy문구 Localization

    NSCameraUsageDescription = "사진을 촬영하기 위해 카메라 권한이 필요합니다.";

    NSPhotoLibraryUsageDescription = "사진을 등록하기 위해 사진첩 권한이 필요합니다.";

    info.plist파일에 직접 문자열을 입력하지 말고 infoplist.strings파일에 이렇게 입력하면 Permission문구를 Localize할 수 있다.


    10. 정규식

    해쉬태그, 멘션, 닉네임 추출등을 위해 정규식을 다시 리마인드 했다. 간단한 정규식은 아직도 머리속에 남아 있으나, 곧 지워질 예정


    https://opentutorials.org/module/622/5143




    생각나는대로 업데이트해야지


Designed by Tistory.