Objective-C로 구현된 LCDView를 Swift로 변환

복싱 타이머 숫자 표시 복싱 타이머에서 시간을 어떻게 보여줄까 생각하다가 LCD 시계처럼 보여주기로 했다. Github에서 “LCD Digit"으로 검색해서 찾은 LcdiPhone을 사용하기로 했다. “Cocoa LCD Screen View”을 보니 괜찮다. 사용권도 Apache License 2로 사용하는데 별문제가 없다. Objective-C로 구현되어 있어도 Swift에서 직접 사용할 수 있겠지만, Swift를 익히는 과정이기에 Porting을 해보기로 했다. Swift 버전 Github 저장소에 있는 파일 중에서 숫자 표시 View인 MTILcdView.h, MTILcdView.m 파일만 Swift로 재구현했다. Swift에서는 헤더 파일이 따로 없기에 LCDView.swift 파일 하나로 구현했다....

4월 3, 2015

Mac용 한글 맞춤법 검사기 단디

웹 기반 한국어 맞춤법/문법 검사기 최근에 글을 쓰면 부산대학교 인공지능 연구실과 (주)나라인포테크가 공동으로 만든 웹 기반 한국어 맞춤법/문법 검사기를 통해 검사하고 있다. 맞춤법/문법을 잘 모르기 때문에 이 도구의 도움을 상당히 많이 받고 있다. 맥용 한국어 맞춤법/문법 검사기 단디 이 웹 기반 도구를 맥에서 쉽게 사용할 수 있는 도구가 단디이다. 별생각 없이 홈페이지 나와 있는 설치법으로 시도하였으나, 설치되지 않는다. 몇 가지 문제 수정을 시도 잠시 살펴보니 설치 스크립트의 URL이 변경된 것이 원인으로 보여 Git 저장소를 Clone을 하여 수정 작업을 시작하였다....

3월 4, 2015

Boxing Timer에서 Model 설계 및 구현

Model 설계 Boxing Timer에서 Model의 역할은 다음과 같다. 정해진 시간을 내려 센다. 3분을 내려 센 후, 종료하면 30초를 내려 센다. 이것을 멈추기 전까지 반복한다. 매 초마다 변경된 시간을 알린다. 시간이 0이 되었다고 알린다. 시간을 알리는 것은 Protocol을 이용한다. Model 구현 대략 다음의 인터페이스를 구현했다. 시간 알림 Protocol을 구현한 Observer 등록 타이머 시작 타이머 멈춤 타이머 시간 초기화 여기까지 작업한 소스는 Github에 올려두었다.

3월 2, 2015

Programming Project 2의 기본 요구 사항들 구현 완료

Programming Project #1의 Extra Credits 구현 완료 Backspace 버튼과 입력한 숫자의 부호를 바꾸는 “+/-” 버튼 등을 추가하는 작업이었다. 배운 것들을 살짝 응용하는 정도로 큰 어려움은 없었다. Programming Project #2의 기본 요구 사항들 구현 완료 Model을 추가한 후, 입력했던 것들을 수식으로 보기 좋게 출력하는 것과 메모리 관련 기능을 구현하는 것이었다. 실행화면은 다음과 같다. Auto Layout을 이용한 결과물이라 다양한 iOS 하드웨어의 화면 및 장비 수평에 맞게 버튼들이 배치된다. 작업 결과물은 github에 올려뒀다.

2월 14, 2015

Programming project 2 진행 중

Model 부분 구현 Programming Project 1에서는 View와 Controller만으로 구현된 계산기였다. Programming Project 2에서는 수업에서 데모로 보여준 Model 부분을 구현하는 것으로 시작한다. 구현된 소스는 github에 올려두었다.

2월 12, 2015

두번째 iOS Application

“Developing iOS 8 Apps with Swift” 강좌를 듣고 있다. iTunes U에 올라오는 강좌를 따라가고 있다. 인터넷으로 공개할 것을 감안하고 진행하는 강좌이기에 온라인 학습자를 위한 많은 배려가 강의에 담겨있다. 예를 들면 이런 것들이다. 수업을 진행하는 교수의 모습 및 데모가 수행되는 컴퓨터 화면을 녹화 후 인터넷으로 보기 좋게 편집이 되어서 올라온다. 학생들에게 질문을 받으면 학생들 목소리가 제대로 녹음이 되지 않았을 것을 생각하여 어떤 질문이었는지 교수가 이야기한 후, 답변한다. 강연 동영상 이외에 발표 자료, 과제들도 PDF 문서로 올라온다....

2월 10, 2015

Swift로 구현된 ToDoList App

Objective C로 된 것을 Swift로 변환 완료 Tutorial에 나와있는 App이라 단순하였기에 변환에 큰 어려움은 없었다. 작업 결과물은 github에 올렸놨다. 시간 걸린 부분 StoryBoard와 Code 연동 View와 Controller가 연동이 안되었는데, 이것저것 하다 보니 해결이 되었다. 정확히 뭐가 문제였고, 어떤 작업을 했는지는 기록을 하지 않아 모르겠다. ㅡ,.ㅡ;; Swift에서 구조체는 항상 복사된다. 구조체 멤버에 값을 설정했는데, 다시 원상복귀 되는 문제의 원인이었다. C/C++에 익숙한 눈으로 보다 보니 잘 안보였기에 시간좀 걸렸다. Swift가 느낌이 더 좋다....

2월 9, 2015

첫 iOS App

iOS Developer Library iOS App 개발에 필요한 자료를 보려면 여기를 빼놓을 수 없다. 레퍼런스 문서들뿐만 아니라 다양한 처음 시작을 위한 안내 문서들도 있다. “Start Developing iOS Apps Today” 문서를 첫 문서로 골랐다. 3개의 Tutorial을 통해서 iOS App의 개발과정을 보여준다. 따라만 하면 간단한 iOS App이 완성된다. 첫 번째 App 위 문서에 따라 개발 도구인 XCode6와 Objective C 언어를 이용하여 ToDo List을 완성했다. 앞으로 개선 예정 문서에 나온 것까지만 완성했지만, 이후에 다음과 같은 것들을 해볼까 한다....

2월 5, 2015

이 블로그에 Google Analytics를 붙여보자.

Google Analytics 구글에서 제공하는 웹로그 분석 시스템이다. 연동한 홈페이지에 방문한 방문자 수, 지역, 경로 등등 다양하게 분석을 해주는 서비스이다. 무료이고, 연동도 아주 쉽다. 더 자세한 것은 Google Analytics에서 확인할 수 있다. 웹사이트 추적 코드를 생성하자. Google Analytics에 가입 후, 새 계정 만들기를 한다. 이때 웹사이트 URL에 ‘‘‘http://blog.softdevstory.net’‘‘을 입력한다. 다른 정보들도 입력 후, 추적 ID 가져오기를 누르면, 다음과 같은 추적코드가 생성된다. 1 2 3 4 5 6 7 8 9 <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r]....

2월 4, 2015

alfred에서 homebrew로 설치한 emacs 실행 시키는 방법

emacs를 homebrew로 설치를 한 후, brew linkapps emacs 명령으로 ‘’’/Applications’’’ 디렉토리에 Emacs.app symbolic link를 생성했다. 문제는 alfred에서 이 symbolic link로 된 Emacs.app을 찾지 못한다. 찾아보니 이미 알려진 문제이다. Alfred 설정에서 직접 Emacs.app이 있는 경로를 추가해주는 것으로 일단 해결을 했다. Preference -> Features -> Default Results -> Search Scope 에 “/usr/local/opt/emacs”를 추가

2월 1, 2015