Realm 리액트 네이티브 1.0을 소개합니다! 강력한 오브젝트 데이터베이스와 Realm 모바일 플랫폼을 함께 사용해 보세요.

오늘 리액트 네이티브에 관한 두 가지 사항을 발표합니다. 먼저 거의 1년 동안 오픈 소스 협업을 마친 끝에 강력한 오브젝트 데이터베이스와 훌륭한 반응형 앱의 토대 개발이라는 핵심 마일스톤을 달성하면서 Realm 리액트 네이티브가 1.0에 이르렀습니다. 또한 이제 Realm 모바일 플랫폼이 리액트 네이티브를 지원합니다. 리액트 네이티브 개발자는 몇 줄의 코드만으로 저희 실시간 플랫폼을 사용해서 새로운 개발 경험을 할 수 있습니다.

작년 초 Realm 리액트 네이티브의 베타 버전을 출시하면서 저희는 여러 열성적인 리액트 네이티브 개발자 커뮤니티 및 TaskRabbit 등의 회사에서 많은 정보를 얻었습니다. Realm은 크로스 플랫폼 데이터베이스이므로 더 많은 코드를 재사용하는 앱과, 보다 관리하기 쉽고 견고한 데이터 레이어를 만들 수 있습니다. 또한 Realm의 라이브 오브젝트와 컬렉션 알림을 통해 Realm에서 지원하는 데이터가 업데이트되면 실시간으로 반응할 수 있는 리액티브 앱을 만들 수 있게 합니다. 얼마나 쉽게 시작할 수 있는지 저희 Realm 리액트 네이티브 문서를 확인해 보세요.

또한 Realm은 단순한 클라이언트측 데이터베이스를 넘어섭니다. Realm 리액트 네이티브 1.0의 출시로 리액트 네이티브 개발자는 Realm 모바일 플랫폼 위에 강력하고 새로운 앱을 개발할 수 있습니다. 앱을 Realm 오브젝트 서버에 연결하고 앱에서 동기화된 Realm을 만들면, Realm이 지원하는 객체가 자신의 속성이 변경될 때마다 자동으로 동기화되며, 오프라인 사용을 위해서 로컬에도 저장됩니다. 또한 Realm 모바일 플랫폼은 충돌 해소와 사용자 인증, 사용자 지정 권한을 위한 도구도 제공하므로 강력하고 협업 가능한 환경을 구축하는데 필요한 모든 것을 갖추고 있습니다.

이에 더해 프로페셔널과 엔터프라이즈 에디션은 이벤트 핸들링 기능도 지원하므로 서버측 JavaScript 코드를 반응형으로 만들 수 있습니다. 이제 언제 어디서나 사용자 데이터가 변경될 때 앱이 응답하도록 전체 코드 베이스에 반응형 원리를 적용할 수 있습니다.

리액트 네이티브 앱은 Realm 모바일 플랫폼에 쉽게 통합할 수 있습니다. 사용자를 인증하고 Realm 오브젝트 서버에 연결한 후 앱의 UI를 아래 코드처럼 반응형으로 업데이트합니다.

import React, { Component } from 'react';
import { Text } from 'react-native';
import Realm from 'realm';
import { ListView } from 'realm/react-native';

export default class DogsView extends Component {
    constructor(props) {
        super(props);
        // 빈 데이터 소스로 구성요소를 초기화합니다
        const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
        this.state = { dataSource: ds };
    }

    componentWillMount() {
        // `this.props`은 DogsView 인스턴스에 넘길 사용자이름과 비밀번호를 담습니다
        Realm.Sync.User.login('https://my-realm-server.com', this.props.username, this.props.password, (error, user) => {
            let realm = new Realm({
                schema: [ { name: 'Dog', properties: { name: 'string' } } ],
                sync: { user, url: 'realms://my-realm-server.com/~/dogs'}
            });
            // 사용자가 로그인하고 동기화된 realm이 있으면 realm 내의 모든 Dog 객체를 사용해서
            // DataSource를 재설정하고, Dogs 컬렉션의 변경 사항을 구독해서 변경시 UI를 새로 고칩니다.
			const dogs = realm.objects('Dog');
            this.setState({ realm, dataSource: this.state.dataSource.cloneWithRows(dogs) });
			dogs.addListener(() => this.forceUpdate());
        });
    }

    render() {
        return (<ListView dataSource={this.state.dataSource} renderRow={(item) => <Text>{item.name}</Text>} />);
    }
}

Realm 모바일 플랫폼을 시작하고 싶다면 문서에서 상세한 설명을 볼 수 있습니다. Realm 리액트 네이티비와 함께 온라인과 오프라인에 관계없이 모든 기기에서 사용자가 좋아할 기능을 가진 앱을 개발해 보세요!

Getting Started with Realm React Native 1.0

To get started using Realm React Native with the Realm Mobile Platform, including realtime sync and more, check out the documentation here!


Realm Team

Realm Team

Realm의 미션은 더 나은 앱을 빠르게 개발할 수 있도록 돕는 것입니다. 이를 위해 저희는 개발자들이 실시간 협업, 가상 현실, 라이브 데이터 동기화, 오프라인 경험, 메시징 등 정교하고 강력한 기능을 쉽게 개발할 수 있도록 하는 개발 도구와 플랫폼을 제공하고 있습니다.

저희는 모바일 인터넷이 수많은 사용자와 보다 많은 디바이스가 속한 개방형 네트워크와 이들 간의 실시간 상호 작용으로 진화할 것이라고 믿으며, 개발자가 이같은 방향으로 발전할 수 있도록 돕기 위해 저희 제품들을 개발하고 있습니다.