Programming/Android2015.12.23 11:27

최근에 안드로이드 프로젝트를 새로 시작했습니다.

혼자하고 작은 프로젝트라서 Kotlin으로 하고 있습니다. (유지보수는 누가하지...)

Swift와 비슷해서 시작했는데 다른 부분이 더 많네요.

여러 부분에서 막히고 문서 보고를 반복하다가 방금 찾아 본 것을 남겨봅니다.


Android 에서 새로운 Activity를 실행하려고 할때 Activity 의 class type을 넣어줘야 하는데요.

Java

Intent intent = new Intent(this, MainActivity.Class);


Kotlin

val intent = Intent(this, javaClass())


위 방법은 현재 deprecated 입니다. 

현재 버전에서는 다음과 같이 사용해야 합니다.


Kotlin

val intent = Intent(this, MainActivity:class.java)


https://kotlinlang.org/docs/reference/java-interop.html#getclass

신고
Posted by 초프(초보 프로그래머)
Programming/iOS2015.10.06 16:54



Action Extension Target을 추가하여 이전까지 문제 없이 사용하고 있었다.

오늘 업로드를 하는 과정에서 다음과 같은 오류가 발생하면서 더 진행이 되지 않는다......

검색과 삽질 끝에 해결은 했다.

Extension 자체는 Framework를 copy하지 않기 때문에 App이 가지고 있는 Framework를 사용해야 한다고 한다.

cocoapods로 Extension Target에 framework를 추가했었는데 이 부분이 문제였다.

이전 까지 문제 없다가 iOS9 출시 후 부터가 문제가 되기 시작했다.

Extension Target에서 cocoapods의 흔적을 다 지우고 다음 링크에 있는 방법대로 하면 된다.

https://hanseihee.wordpress.com/2015/01/14/xcode-cocoapods-with-today-extension/


---- 수정 ---

https://github.com/CocoaPods/CocoaPods/issues/4203

신고
Posted by 초프(초보 프로그래머)
Programming/iOS2015.08.28 01:31

cocoapods 0.38.2 로 업데이트 후에 pod 명령어만 실행하면 아래와 같은 오류가 발생한다.


Chopeui-MacBook-Pro:iOS-classic Chope$ pod --version

---------------------------------------------
Error loading the plugin with path `/Library/Ruby/Gems/2.0.0/gems/cocoapods-stats-0.6.0/lib/cocoapods_plugin.rb`.

LoadError - cannot load such file -- /Library/Ruby/Gems/2.0.0/gems/cocoapods-stats-0.6.0/lib/cocoapods_plugin.rb
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:126:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:126:in `require'
/Library/Ruby/Gems/2.0.0/gems/claide-0.9.1/lib/claide/command/plugin_manager.rb:106:in `safe_require'
/Library/Ruby/Gems/2.0.0/gems/claide-0.9.1/lib/claide/command/plugin_manager.rb:32:in `block in load_plugins'
/Library/Ruby/Gems/2.0.0/gems/claide-0.9.1/lib/claide/command/plugin_manager.rb:31:in `each'
/Library/Ruby/Gems/2.0.0/gems/claide-0.9.1/lib/claide/command/plugin_manager.rb:31:in `load_plugins'
/Library/Ruby/Gems/2.0.0/gems/claide-0.9.1/lib/claide/command.rb:304:in `block in run'
/Library/Ruby/Gems/2.0.0/gems/claide-0.9.1/lib/claide/command.rb:303:in `each'
/Library/Ruby/Gems/2.0.0/gems/claide-0.9.1/lib/claide/command.rb:303:in `run'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.2/lib/cocoapods/command.rb:48:in `run'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.2/bin/pod:44:in `'
/usr/bin/pod:23:in `load'
/usr/bin/pod:23:in `
' --------------------------------------------- 0.38.2

검색해보니 rvm을 업데이트하면 된다고 한다.

\curl -sSL https://get.rvm.io | bash -s stable --ruby

잘 안되서... ruby 버전을 2.2.1로 업데이트 하고 다시 rvm 업데이트를 시도 했다.

pod 명령어는 오류 없이 잘 동작함!

신고
Posted by 초프(초보 프로그래머)
TAG cocoapods, ios, POD
Programming/iOS2015.07.24 00:21
Swift version : 1.2
iOS version : 8.4


Swift 문법도 익숙치 않은데 NSNotificationCenter 사용하려는데 막히는 부분이 많고...

Notificaiton 에서 keyboard 관련 정보 가져오려는데.... 왜이리 오류가 많은지..

다음과 코드가 동작함을 확인하였으니 참고하세요.


 NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name: UIKeyboardWillShowNotification, object: nil)


    func keyboardWillShow(notification: NSNotification) {
        let userInfo = notification.userInfo!

        let beginFrame = (userInfo[UIKeyboardFrameBeginUserInfoKey] as! NSValue).CGRectValue()
        let endFrame = (userInfo[UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue()
        let duration = (userInfo[UIKeyboardAnimationDurationUserInfoKey] as! NSNumber).doubleValue
        let animationOptions = UIViewAnimationOptions((userInfo[UIKeyboardAnimationCurveUserInfoKey] as! NSNumber).unsignedLongValue << 16)

        UIView.animateWithDuration(duration, delay: 0.0, options: animationOptions, animations: { () -> Void in
            
        }, completion: nil)
    }


Swift version : 2.0
iOS version : 9.0


animationOptions 를 구하는 방법이 변경되었습니다.


    func keyboardWillShow(notification: NSNotification) {
        let userInfo = notification.userInfo!

        let beginFrame = (userInfo[UIKeyboardFrameBeginUserInfoKey] as! NSValue).CGRectValue()
        let endFrame = (userInfo[UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue()
        let duration = (userInfo[UIKeyboardAnimationDurationUserInfoKey] as! NSNumber).doubleValue
        let animationOptions = UIViewAnimationOptions(rawValue: (userInfo[UIKeyboardAnimationCurveUserInfoKey] as! NSNumber).unsignedLongValue)

        UIView.animateWithDuration(duration, delay: 0.0, options: animationOptions, animations: { () -> Void in
            
        }, completion: nil)
    }


신고
Posted by 초프(초보 프로그래머)
TAG ios, swift
Programming/iOS2015.07.16 02:05

ReactiveCocoa 교육을 듣고 잊기 전에 예제를 만들었습니다.

시나리오

  • 로그인
    • id, pw 값이 있으면 Login 버튼이 활성화
    • id, pw 값 중 하나라도 없으면 login 버튼은 비활성화
  • 카운터
    • 0.5 초로 반복하여 count
    • 0.5 초 마다 red 가 show/hide를 반복
    • 2.5 초 마다 blue가 show/hide를 반복
    • 10 초 후에 timer 종료
    • red, blue 를 green으로 표시


해당 예제 커밋


설명은 추후에.... 


신고
Posted by 초프(초보 프로그래머)