제2회 실천 iOS 응용 개발 모듈 프로그램 설계회 총결산

바람이 불어도 왠지 여름 기운이 난다.@yimajo.
2018.5.12(토요일)에 iOS 어플리케이션을 개발하는 프로그램 설계회를 열고 그 보고서를 쓰고 싶습니다.
이 글은 다음 세 번째 개최 때 참석 여부를 망설이는 사람들이 이 기사를 읽게 될 것이라고 구상했다.아니면 모부 프로그래밍을 하고 싶은 분들을 위해 참고를 열심히 하겠습니다.
이번 회의장도 표참도의 산산주식회사의 13F 공간을 빌려 썼다.토요일 정오부터 고마워요.

이번 행인 프로그래밍회의 주제.


Swift이벤트 검색 API에 검색 이벤트와 책갈피 애플리케이션을 제작해 사용했다async/await.이번 주제야.
async/await일까? 크리스 라트너가 스위프트 에볼루션 프로포 원숭이초안에 스위프트async/await에 대한 내용을 썼기 때문인데, 한번 써볼래요, 먼저 꺼내볼래요.
물론 현재 스위프트async/await는 바로 사용할 수 없기 때문에 async/await 사용할 수 있는 경량 프로미스의 프로그램 라이브러리Hydra를 사용하기로 했다.

참가 인원수


참가 인원은 다음과 같다.

  • 응모
  • 운전사 3명
  • 이동틀 1(갈 수 있을지 모르겠지만 기세로 참가하고 싶으면 취소 시 취소 처리 범위) 2명
  • 행인권2(적극 참가, 운전기사가 없으면 운전기사를 해볼 수 있는 범위) 3명

  • 당선되다
  • 운전사 3명
  • 행인권 1:2명
  • 행인권 2:3명

  • 이날 실제 참가한 인원수(참가율 100%의 일시 취소 0...)
  • 운전사 3명
  • 행인권 1:2명
  • 행인권 2:3명
  • 왜 이동틀을 분리해야 하는가? 기세로 등록하려는 사람과 의욕이 높고 참석을 잊지 않을 확률이 높은 사람을 분리하려는 이유에서다.참석자 수가 많을 때 블로그/Tweet 실황 파일을 준비하는 것과 비슷하다.블로그나 트위터 실황 중계를 도와주셔서 정말 다행입니다. 저와 같이 운전기사가 되어도 됩니다. 참여해 주셔서 감사합니다.
    다만, 추첨 방식을 적용해 참가를 확정하기까지 시간이 많이 걸려 죄송하다.운전기사가 될 수 있는 사람이라면 선착순으로 신청하고 바로 참가를 결정하면 계획을 세우기 쉬울 텐데 앞으로 개선할 수 있으면 좋겠다.

    돌아보다


    해보니까 알겠다.


    conpass의 API만 사용하고 비동기는 통신에만 한정되며 사용할 수 없음async/await 때문에 ATND의 API를 호출하여 결과를 요약하기로 결정했습니다.이것만으로는 부족하기 때문에, 각 이벤트의 API 응답에 있는 이벤트 페이지의 URL을 HTML 캐시 제목으로 긴급히 추가했습니다.
    제목을 요약해 주세요.
  • connepass와 ATND에 접근하는 이벤트
  • 결과에서 이벤트 URL 가져오기
  • 이 URL에 액세스하여 HTML 및 캐시
  • 를 가져옵니다.
    그렇습니다.
    URL에서 HTML을 가져와 캐시하는 것은 좀 번거롭습니다.
    우선 Hydra는 all 함수가 있어conceurrency로 병렬 처리된 max를 결정할 수 있지만, 지금 코드를 다시 보면 아래의 느낌입니다.
    
    async { _ in
        /* 省略 */
        let promises = events.map(getHtml) // イベントのURLからHTMLを取得する[Promise <(html: String, url: String)>]
        let htmlTexts = try await(all(promises, concurrency: 4))
        htmlTexts.forEach { (html, url) in
            self.cache.setObject(html as NSString, forKey: url as NSString)
        }
    }.catch { /*省略*/ }
    
    이 코드는 최대 4개의 'URL에서 HTML 처리' 를 가지고 있지만, 고속 캐시화는 처리가 끝난 모든 것을 집중적으로 하는 것이다.
    이 방법과 다른 처리 방법을 조정하는 방안으로'URL에서 HTML을 얻는 처리'를 concurrency: 4로 설정하는 것이 아니라 concurrency: 4에서'URL에서 HTML을 얻은 후에 저장하는 처리'를 하는 것이 좋다(코드를 쓰는 과정에서 그럴 수 있다).그렇다면 동작이 정확해도 조정되는 부분이 있을 것 같아서async/await코드 리뷰에서 어느 정도 볼 수 있는지에 초점이 맞춰질 것 같아요.
    async/await 스위프트의 언어규범에 들어가면 처음부터 제대로 이뤄지기 어렵다는 것이다.처리량이 많아진 상황에서 효율을 직관적으로 추구하고 효율이 있는지 확인해야 한다.

    시작 시간과 오프닝 시간.


    나는 시작 시간 설정에서 오프닝 시간을 설정한 것은 실패한 것이라고 생각한다.
    connepass에서 행사 시작 시간을 설정할 수 있지만 기본적으로 회의장에 입장하는 시간은 반드시 존재해야 합니다. 만약에 그 시간을 connepass의 시작 시간으로 설정한다면 회의장에 도착하기 위해 노력하는 사람과행사 내용에 적힌 시간표에 따라 실제 시작 시간에 오는 사람으로 나뉜다.
    기본적으로 시간표를 검사하는 시간을 억지로 하는 습관이 있기 때문에 connepass 시작 시간을 오프닝 시간으로 설정하면 지각해도 괜찮다고 생각합니다.
    따라서 시작 시간은 정말 시작 시간으로 설정하고 행사 내용의 시간표에 회의장에 들어갈 시간을 적는 것이 좋다.

    미팅은 코드를 보면서 진행을 합니다.


    다행히 이번 스폰서 산산주식회사는 회의장뿐만 아니라 저녁과 음료도 제공한다.덕분에 회의장에서 소스를 띄우고 식사하면서 의견을 교환하는 미팅도 할 수 있게 됐다.
    지난번에 밖에 나가서 술을 너무 많이 먹어서 코드 얘기는 별로 안 했으니까 이번에는 주제를 파헤치면서 미팅을 할 수 있게 됐다.

    자기소개를 바로 하지는 않지만, 안 하면 자기소개를 잊어버려요.


    시작할 때는 자기소개를 하지 말고 미팅에서 자기소개를 하는 게 좋은데, 미팅 시작할 때는 음식이 한데 놓여 있어서 자기소개를 잊어버렸어요.더 좋은 시기가 있을지 모색 중이다.
    기사가 코드를 쓰기 전에 자기소개를 할 수 있다면 심리적으로 안심할 수 있을지도 모른다.

    자기소개는 생각하기 힘들어요.


    자기소개를 잘하는 사람은 드물지 않을까 생각했어요.내 소개가 무엇인지 도무지 짐작이 가지 않았고, 손으로 더듬어 생각한 일이라 두서가 없었다.그래서 내가 미리 알고 있는 사람이라면 그 사람을 다시 설명하는 게 좋을 것 같아.예를 들어'이 사람은 팟캐스트다'같은 말이 있으면 본인 입에서 계기를 듣고 싶어진다.이처럼 호기심이 샘솟는 자기소개를 위해서는 먼저 생각해보는 것이 좋을 것 같다.

    총결산


    오토바이 프로그래밍은 발표할 학습회가 아니기 때문에 사전에 자료를 만들지 않아도 원가가 낮은 것이 좋다.도서관 등을 더듬어 사용하다가 주위 사람들이 문서를 읽고 더듬어 건의를 하기 때문에 의외로 방법이 있을 수 있다.더 나아가 그때의 방법은 좋지 않았지만, 작업 중에 더 잘 설계할 수 있다면 전혀 문제없을 것이다.
    다음에 더 좋은 주제는요.
  • RxSwift로 Todo나connepass&ATND의 이벤트 검색 응용 프로그램 제작
  • ReactiveCocoa를 통해 Todo나connepass&ATND의 이벤트 검색 프로그램을 제작
  • 이렇게 하는 게 좋을 것 같아요.
  • Swift for Tensorflow
  • 카메라 롤러의 이미지에서 웃는 얼굴 사진 등 발견
  • 서버 측 Swift
  • connepass & ATND 이벤트를 검색할 수 있는 맥 프로그램 제작
  • 그렇다면 변화구가 효과가 있어 재미있어 보인다.

    좋은 웹페이지 즐겨찾기