2016년 10월 24일 월요일

[IOS][SWIFT] Swift3 빌드시간이 겁내 길어짐!!

정말 한때는 미치는줄...
아래 해결법을 참조하니 겁내 빨라짐..
뭐 클린 빌드 느린건 여전히 어쩔수 없나 보다.

http://stackoverflow.com/questions/39737374/swift-3-compile-time-incredibly-slow

2016년 9월 18일 일요일

[Server] AWS로 앱 서버 호스팅 하기

먼저 AWS 계정을 생성 한다.

AWS 가 너무 복잡하고 이것 저것 서비스를 많이 하다 보니 대체 뭘해야 할지 모르겠다.

그와중에 적절한 문서 발견..
이걸 따라 한다...
http://docs.aws.amazon.com/ko_kr/gettingstarted/latest/wah-linux/web-app-hosting-intro.html

겁내 복잡해서 아래 블로그 참조
http://egloos.zum.com/isduck/v/3382096

톰켓을 설치했는데 서비스 실행이 안됨
/usr/share/tomcat7/bin
요기서
sudo ./startup.sh

했지만 안됨..
(이래서 서버 개발이 개짜증!! 버전 틀리면 뭐가 틀리고 저쩌고 걍 버튼 하나로 설치 되면 얼마나 좋아?? 다른 것들은 잘들 만들어 주던데 이건 여전하네 10년전이나 지금이나..)

여튼 에러 메시지
touch: cannot touch ‘/usr/share/tomcat7/logs/catalina.out’: No such file or directory
./catalina.sh: 385: ./catalina.sh: cannot create /usr/share/tomcat7/logs/catalina.out: Directory nonexistent

검색해보니 이딴식으로 실행해야 한다네.. 뭐 예전에 이딴식으로 했던 것도 같음;; 
sudo /etc/init.d/tomcat7 start
여튼 접속 해보니 잘됨

이번엔 망할 mysql이 이상함
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
이딴 에러가 나오는데 서버 버전이라 그렇단다...
mysql -h 127.0.0.1 -P 3306 -u root -p
이렇게 접속 하니 잘됨

서버에 앱 배포를 위해 톰켓 메니져 설치
sudo apt-get install tomcat7-docs tomcat7-admin tomcat7-examples

/etc/tomcat7/tomcat-users.xml 파일을 수정해 관리자 계정 추가
이딴식으로 하면 됨
<role rolename="manager-gui"/>
<user username="tomcat" password="s3cret" roles="manager-gui"/>

뭐 변경 할때 마다 귀찮은 재시작..
sudo /etc/init.d/tomcat7 restart

반갑다..
많이 바꼈겠지만.. 어쨌든 이화면 11년 만이다..










2016년 6월 30일 목요일

.plist 파일을 json으로 변환

엄청 편함!!
http://json2plist.sinaapp.com/

근데 한글이 인코딩 되는데 그럴 경우 여기서 한글로 다시 변환
http://coderstoolbox.net/string/#!encoding=js&action=decode&charset=us_ascii

2016년 3월 29일 화요일

[ios][swift] UIActivityViewController에서 자신의 ShareExtension이 표시 되지 않게 하고 싶다...

앱 내부에서 외부로 공유를 위해 UIActivityViewController를 써 보았다.
사용은 뭐 쉽다.
배열로 공유할 오브젝트들을 나열하면 알아서 공유를 해준다.
문제는 앱에서 ShareExtension을 제공하는데,
앱내에서 공유를 하려면 이 ShareExtension도 표시가 되서 보기가 않좋다.
뭐 경우에 따라서는 같은 앱으로 공유 하는것이니 쓸모가 있을 수도 있겠지만..
아무튼, SDK에 따르면 원하지 않는 Activity타입은 제외 할 수 있다고 하는데,
이것이 동작 하지 않는데.
근데 페이스북의 경우는 잘된다...
왠지 커스텀의 경우만 잘 안되던가 내가 잘못했던가 인 듯 한데.
도통 이유를 모르겠다.
StackOverFlow에도 질의를 해둔 상태인데 답이 올런지...
http://stackoverflow.com/q/36281743/2575254

아래는 나의 테스트 코드 :

let activityItems = [shareUrl]
    let activityViewController = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)
    activityViewController.modalTransitionStyle = UIModalTransitionStyle.CoverVertical
    activityViewController.excludedActivityTypes = ["com.mytest.ShareExtension"];

    activityViewController.completionHandler = { (activityType: String?, completed: Bool) -> Void in
        print(activityType) // printed "com.mytest.ShareExtension"
    }

    vc.presentViewController(activityViewController, animated: true, completion: nil);


[Swift] Objective-C와의 차이 정리중...

뭐 일단 문법부터 다르지만 ㅋ

- 스위프트에서 만든 모듈을 OBJC에서 사용
#import "[header-name]-Swift.h"

- 반대로 스위프트에서 OBJC 모듈 사용
"[header-name]-Bridging-Header.h" 파일에 추가 해주면 됨

- 변수선언
var a : String

- 상수선언
let b : String = "String"

- 정적 배열선언
var cityRow = ["string1", "string2", "string3", "string4"]

- 상수값 사용
UIModalTransitionStyleCoverVertical
UIModalTransitionStyle.CoverVertical

- 블록 -> 클로저
{ (매개변수) -> 반환타입 in
    실행구문
}
Ex)
{ (arg1: Int, arg2: Int) -> Bool in
    print("Test")
    return true
}

- CGFloat값을 Float으로 변환
let someFloat = Float(cgFloat)

- String 길이
aString.characters.count

- @NSManaged ??
@dynamic 과 비슷하나 런타임에서 Core Data로 처리됨을 의미