728x90
반응형

ALL 601

안드로이드 커스텀뷰 2) onDraw 방식

이전까지는 레이아웃을 가져와서 작업을 했다면 이번에는 기본적으로 View를 상속받은 다음에 직접 하나하나 그리는 방식이다. 직접 그리기 위해서는 onDraw를 사용한다. 그러면 직접 그리는 방식의 장점은 무엇일까? 기본적으로 레이아웃 파일을 이용하여 뷰를 가져오면 처리속도가 느리다. 그렇기 때문에 한 화면에 많은 뷰가 들어가면 들어갈 수록 속도는 점점 느려진다. 클래스업(ClassUp)의 경우 수업 화면이 무한 가로 스크롤이 되는 구조인데, 레이아웃을 이용하여 수업을 20개 정도 넣으면 확연히 속도가 느려지는 것을 체감할 수 있다. ViewSwitcher를 이용하고, 뷰를 옮길 때마다 매번 20개씩 다시 그려야하기 때문이다. 그래서 수업하면 전체를 직접 onDraw로 그리는 방식을 선택했고 속도는 정말 ..

Android 2020.02.10

안드로이드 커스텀 뷰 1)

클래스업(ClassUp)에서도 그렇고 다른 앱을 만들 때에도 그렇지만 내가 원하는 뷰를 따로 만들고 싶은 경우가 있다. 즉, 커스텀 뷰(CustomView)를 만들어야 하는 상황이 있다. 보통 커스텀 뷰(CustomView)를 만드는 상황은 아래와 같다. 기존에 존재하는 뷰에 기능적인 부분을 조금 더 구현할 때. 기존에 존재하는 뷰에 커스텀한 속성을 넣고 싶을 때. 여러 뷰를 통합해서 하나의 뷰로 가져가면서 내가 원하는 기능 및 속성을 넣고 싶을 때. 여러 화면에서 같은 기능 및 속성을 가지는 뷰를 사용해야 할 때. 전부 일맥상통하는 말이지만 결국 코드를 조금 더 깔끔하게 짜고, 조금 더 구조적으로 정교하게 코딩하기 위해서인 것 같다. 그러면 안드로이드에서 간단하게 커스텀하는 방법을 적어보려고 한다. 커..

Android 2020.02.10

React native 모달( Modal )

import { View, TouchableHighlight,TouchableOpacity,Modal } from 'react-native' // 모달 박스1 class CancelModel extends Component{ state = { modalVisible: false, }; setModalVisible(visible) { this.setState({ modalVisible: visible }); } render() { return ( { Alert.alert('Modal has been closed.'); }}> 알림 이 페이지를 벗어나면, {"\n"} 작성중인 데이터가 모두 사라집니다.{"\n"}{"\n"} 페이지를 종료 하시겠습니까? { this.setModalVisible(!this.st..

React Native 2020.02.04

React native 네비게이션 옵션을 라우트 네임에 따라 적용방법

예시) 라우트 네임에 따라서, 탭바를 보여줄지 안보여 줄지 선택 const tabbarVisible = (navigation) => { const { routes } = navigation.state; let showTabbar = true; routes.forEach((route) => { if (route.routeName === 'WriteBoard') { showTabbar = false; } }); return showTabbar; }; // Board2 탭 메뉴 뷰들 createMaterialTopTabNavigator const Board_TapView2 = createBottomTabNavigator( { 공지사항 :{ screen:Test_1, navigationOptions: ({ na..

React Native 2020.01.31

1) MVVM 패턴

MVVM 패턴? 위에서 언급한 대로, 액티비티에 기능을 붙이다보면 액티비티가 무거워지거나 혹은 종속성이 너무 강해 테스트가 힘들고 유지보수가 어려워진다. 이런 고민 때문에 MVVM 패턴이 등장했다. MVVM은 View - ViewModel - Model을 이용해 각각의 역할을 분리하여 가독성과 재사용성을 높인 디자인 패턴이다. MVC와 MVVM 차이점 기존 MVC(Model - View - Controller) 구조에서는 액티비티가 컨트롤러의 역할을 했으며, 뷰와 연결되어 유저와 상호작용도 하고, 모델과 연결되어 데이터도 처리했다. 즉 뷰와 모델 사이에서 중재자 역할을 했다. MVVM에서는 뷰에서 뷰모델로, 뷰모델에서 모델로 작업을 처리하며, 뷰에서 모델을 직접 참조하지 않는다. 대신 뷰에서 뷰모델을 관..

728x90
반응형