본문 바로가기
[SQLite3] 03. SQL 고급 #2 [SQLite3] 03. SQL 고급 #2 이 글은 "빠르게 활용하는 모바일 데이터베이스 SQLite3” 이란 글을 보며 필요한 내용만 정리한 글입니다.자세한 내용은 책을 구매해서 보세요 9. 트리거 -DB TRIGGER 란 특정 테이블이나 뷰에 INSERT, DELETE, UPDATE 와 같은 데이터 조작 이벤트가 발생했을 때 자동으로 지정된 동작을 수행하게 하는 것이다. 트리거 활용 -syntaxCREATE TRIGGER [triggerName] [triggerTiming] [triggerOperation] ON [tableName]BEGIN [sqlOperations]END; triggerTiming 은 아래와 같다.BEFORE : 대상 테이블의 CUD 동작 직전에 트리거에서 지정한 동작이 수행된다.. 2018. 5. 19.
[SQLite3] 03. SQL 고급 #1 [SQLite3] 03. SQL 고급 #1 이 글은 "빠르게 활용하는 모바일 데이터베이스 SQLite3” 이란 글을 보며 필요한 내용만 정리한 글입니다.자세한 내용은 책을 구매해서 보세요 1. 관계형 데이터베이스 설계 -한 개의 Table 에 모든 정보를 담는 경우 다음과 같은 단점이 있다. 중복되는 정보가 저장된다. 레코드 간 구분 가능한 필드가 명확히 없다. ( Property 가 거의 같은 경우 ) -RDBMS 의 설계 원칙은 중복을 최소화하는 것이다.데이터 중복성(redundancy)과 일관적이지 않은 데이터 종속성(dependency)를 제거하는 규칙에 따라 정보를 여러 테이블에 저장되도록 테이블을 설계하고, 테이블간 공통된 값으로 서로 연결되게 한다. -테이블의 각 행을 구분하는 하나 이상의 .. 2018. 5. 18.
[android] Ripple 에 대해 알아보자 [android] Ripple 에 대해 알아보자 https://blog.stylingandroid.com/ripples-part-1/https://guides.codepath.com/android/ripple-animation -Ripple 자체는 Android L ( LOS ) 부터 나왔다.그러나 필자는 Ripple 을 실제로 처리할 일이 없어서, 그런 것이 있구나~ 하는 상태로 지내왔으나 이제 쓸 일이 있어서 정리해본다. -Ripple 은 새로운 RippleDrawable 이라 불리는 새로운 Drawable 이다.xml 로는 아래와 같이 정의하며, 기존 selector 정의해서 쓰듯 일반적으로 background 에 지정해주면 된다. -Ripple 을 그냥 적용해버리면, effect 가 해당 view.. 2018. 3. 30.
[android] ConstraintLayout Tutorial [android] ConstraintLayout Tutorial https://developer.android.com/training/constraint-layout/index.html -ConstraintLayout 은 RelativeLayout 과 매우 비슷하게 Flat 한 view hierarchy 를 만들 수 있으면서도. 조금 더 유연하게 사용할 수 있다.그리고 Android Studio Layout Editor 를 통해 쉽게 설정할 수도 있어 편리하다. ( 이것을 key 로 미는 듯 ) -여기서 궁금한 거 하나 더!!Flat view hierarchy 는 알겠는데 그만큼 성능도 좋을까?결론은 성능도 좋다. ( 다른 layout 에 비해 약 10% 이상 빠르다 )https://medium.com/.. 2018. 3. 3.
[ios] CallKit - CallDirectoryExtension [ios] CallKit - CallDirectoryExtension 참조 : https://developer.apple.com/reference/callkit -CallKit framework 는 VoIP 앱이 일반 전화를 쓰는 것처럼 UX 를 가져갈 수 있게 해준다.LockScreen 에서 incoming call 에 대한 view 를 보고 응답도 할 수 있다.VoIP 에서 Favorite 과 최근 통화 뷰도 다룰 수 있다. -CallKit 은 app extension 형태( CallDirectory )로 수신차단과 발신자 정보 표시(caller identification) 기능을 사용할 수도 있다. -CXCallDirectoryExtensionContext : NSExtensionContext - .. 2018. 2. 7.
[ios/tutorial] Core Animation 모든 것!! [ios/tutorial] Core Animation 모든 것!! 참고 : https://www.objc.io/issues/12-animations/animations-explained/ -Animation 을 수행하는 방법은 크게 2가지. 1. UIView 의 class method “animateWithDuration:” 을 사용하는 방법2. Core Animation 을 사용하는 방법. Simple Animation 이 아니라면 Core Animation 을 사용하는 것이 추천된다.훨씬 코드의 가독성이 좋고, 더 많은 기능을 제공한다.But, 더 많은 학습을 필요로 한다. 물론 애플의 권장사항은 할수만 있다면 항상 UIKit 에서 제공되는 Animation 을 사용하길 원한다. -Core Anima.. 2017. 11. 30.
[ios/tutorial] Implicit Animation [ios/tutorial] Implicit Animation -View 에 붙어 있지 않은 Layer property 들은 기본적으로 implicit animation 을 한다. -Implicit Animation 을 끄려면 다음과 같이 한다.[CATransaction begin];[CATransaction setValue:[NSNumber numberWithBool:YES] forKey:kCATransactionDisableActions]; // property setting [CATransaction commit]; -아래와 같은 코드로 View 에 붙어있는 Layer 에도 Implicit animation 을 줄 수 있다.또한 standalone animation 의 implicit animatio.. 2017. 11. 28.
[ios/reference] Animating Layer Content [ios/reference] Animating Layer Content https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreAnimation_guide/CreatingBasicAnimations/CreatingBasicAnimations.html -Animation 은 보통 그 요청이 끝날 때까지 지속된다.명시적으로 animation 을 끝내기 위해서는... removeAnimationForKey: 또는 removeAllAnimations 함수를 호출하면 된다. -Animation 을 멈추면, 원래의 현재값으로 돌아간다.만약 Animation 을 멈춘 시점에 그 값을 유지하려면, presentation tree 를 이용해서.. 2017. 11. 22.
[ios/reference] Setting Up Layer Objects [ios/reference] Setting Up Layer Objects https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreAnimation_guide/SettingUpLayerObjects/SettingUpLayerObjects.html#//apple_ref/doc/uid/TP40004514-CH13-SW12 -iOS 앱에서 Core Animation 은 항상 enable 되어 있고, 모든 view 는 layer 가 backed 되어 있다.OS X 는 Core Animation 을 명시적으로 enable 시켜야 한다. -Layer-backed view 는 CALayer 를 기본으로 만든다.그러나 상황에 따라 다른 Lay.. 2017. 11. 21.
반응형