Skip to content

React Native study project for iOS developers learning RN and exploring Kidsnote integration

Notifications You must be signed in to change notification settings

Allen-han21/RN-Study-Kidsnote

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RN-Study-Kidsnote

React Native TypeScript iOS Android

iOS 네이티브 개발자 중심 React Native 학습 및 Kidsnote 앱 RN 모듈 통합 검증 프로젝트

📘 프로젝트 개요

RN-Study-Kidsnote는 iOS 네이티브 개발자들이 React Native를 학습하고, 기존 네이티브 앱(Kidsnote)에 RN 모듈을 통합하는 가능성을 검증하기 위한 스터디 프로젝트입니다.

단순히 이론을 배우는 것이 아니라, 실제 업무 수준에서 RN을 적용할 수 있는 구조를 실험하는 것을 목표로 합니다.

🎯 목적

단기 목표

  • RN의 기본 문법, 상태 관리, 선언적 UI 철학 이해
  • 간단한 메모앱 / 프로필앱 제작

중기 목표

  • RN을 Kidsnote 앱 내 특정 화면에 임베딩하여 통합 가능성 검증

장기 목표

  • OTA(Over-the-Air) 업데이트, CodePush를 통한 무배포 배포 구조 실험
  • "앱 배포 없이 UI/문구 수정 가능한 Kidsnote 하이브리드 구조" 구현

👥 참여자

  • 한동욱
  • 빈센트
  • 앨런
  • 데이즈
  • 카일

🛠️ 기술 스택

구분 기술
언어 TypeScript, JavaScript
프레임워크 React Native
런타임/빌드 Node.js, Metro, Expo (초기 학습용)
플랫폼 iOS, Android
패키지 관리 npm 또는 yarn
개발 도구 Xcode, Android Studio, VSCode, Git
선택적 확장 CodePush, REST API (공공데이터/BR API)

🎓 학습 포인트

1. 선언적 UI 철학

UI = f(state)

상태가 바뀌면 UI가 자동 업데이트 된다

  • React Native, SwiftUI, Jetpack Compose 모두 동일한 개념

2. Expo vs CLI

  • Expo: 빠른 시작용, 제한된 환경
  • React Native CLI: 실무에서 네이티브 통합 시 필수

3. 언어 선택

  • JavaScript + TypeScript 병행 (TS 권장)
  • 타입 안정성과 Swift와의 유사성 때문에 TypeScript 선호

📅 스터디 진행

1주차: React Native 기초

  • 학습 목표: React Native 철학 및 기본 문법 이해
  • 주요 개념: 선언적 UI, useState, 리렌더링, 플랫폼별 차이
  • 과제: 프로필 카드 컴포넌트 만들기
    • 이름, 나이, 이메일 표시
    • "Edit Mode" 토글 기능 구현
  • 선택 과제: RN vs SwiftUI 비교 문서 작성
  • 다음 주제: JSX와 스타일링 (CSS-in-JS, StyleSheet, Tailwind RN 등)

🚀 시작하기

환경 설정

# Node.js 설치 확인
node --version
npm --version

# React Native CLI 설치
npm install -g react-native-cli

# 또는 Expo CLI 설치 (초기 학습용)
npm install -g expo-cli

프로젝트 생성

# React Native CLI 사용
npx react-native init MyApp --template react-native-template-typescript

# 또는 Expo 사용
npx create-expo-app MyApp --template

iOS 실행

# iOS 시뮬레이터
npx react-native run-ios

# 또는 Expo
npm start
# i 키로 iOS 시뮬레이터 실행

Android 실행

# Android 에뮬레이터
npx react-native run-android

# 또는 Expo
npm start
# a 키로 Android 에뮬레이터 실행

📖 학습 자료

📂 프로젝트 구조

RN-Study-Kidsnote/
├── docs/              # 스터디 자료 및 메모
│   └── week-01.md     # 1주차 학습 내용
├── examples/          # 예제 코드
│   └── profile-card/  # 프로필 카드 예제
├── notes/             # 개인 학습 노트
└── projects/          # 실습 프로젝트
    └── memo-app/      # 메모 앱 프로젝트

🤝 기여 방법

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'feat: add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 커밋 컨벤션

feat: 새로운 기능 추가
fix: 버그 수정
docs: 문서 수정
style: 코드 포맷팅
refactor: 코드 리팩토링
test: 테스트 추가
chore: 설정 변경

📄 License

This project is for educational purposes only.

🔗 관련 프로젝트


Made with ❤️ by iOS Developers learning React Native

About

React Native study project for iOS developers learning RN and exploring Kidsnote integration

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •