https://github.com/wmcmahan/react-native-calendar-events
react-native link react-native-calendar-events
했음
https://github.com/wmcmahan/react-native-calendar-events/wiki/iOS-setup
info.plist 추가하니 권한 요청할 때 크래시 사라짐.
그냥.... 알람은.... 커스텀이었던거다.
yarn add react-native-push-notification
https://www.npmjs.com/package/react-native-push-notification
설치 쭉 따라가고, firebase는 remote를 안쓸거니까 firebase 나오는 부분은 다 스킵했음.
안드, ios 모두 local noti 오는거 확인!
근데 안드는 왜이렇게 알람이 계속 오지?
이제 nfc 스캔 시 알람이 꺼지도록 해보자.
일단 nfc 스캔하는 라이브러리를 찾아봐야지
https://www.npmjs.com/package/react-native-nfc-manager
https://coding-dahee.tistory.com/127
여기 참고
안드로이드만 함. 아이폰은 실제 테스트가 안되니까 일단 설치만 해두자.
Extra iOS setup is required
이것도 따라해두긴 함
만 함
https://github.com/hansemannn/iOS-NFC-Example
에서 Provisioning Profile entitled with the NFC Tag Reading capability: 다음부터는 안함
[푸시 알림 사용 라이브러리]
https://github.com/zo0r/react-native-push-notification
[버그 해결]
https://coding-dahee.tistory.com/131
[floating button]
https://github.com/mastermoo/react-native-action-button
docker 깔기
로그인
daheeahn
deg9810@gmail.com
상태바에서 로그인
yarn
npx prisma2 init
prisma/.env 붙여넣기
# Environment variables declared in this file are automatically made available to Prisma.
# See the documentation for more detail: https://pris.ly/d/prisma-schema#using-environment-variables
# Prisma supports the native connection string format for PostgreSQL, MySQL and SQLite.
# See the documentation for all the connection string options: https://pris.ly/d/connection-strings
DATABASE_URL="postgresql://testuser:testpasswd@localhost:5432/testdb?schema=public"
prisma2/schema.prisma 붙여넣기
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
}
enum Sex {
male female
}
enum Provider {
kakao
}
model User {
id Int @id @default(autoincrement())
nickname String
birthdate DateTime
sex Sex
userPushId String?
userAccount UserAccount
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime?
@@unique([userPushId, userAccount])
}
model UserAccount {
id Int @id @default(autoincrement())
snsId String @unique
provider Provider
user User?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime?
}
model Nfc {
id Int @id @default(autoincrement())
value String @unique
userNfc User_nfc[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime?
}
model Routine {
id Int @id @default(autoincrement())
name String
user User
userNfcRoutine User_nfc_routine
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime?
}
model Alarm {
id Int @id @default(autoincrement())
name String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime?
}
model Result {
id Int @id @default(autoincrement())
date DateTime
userNfcUser User_nfc_routine
resultTimestamp Result_timestamp?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime?
}
model Result_timestamp {
id Int @id @default(autoincrement())
firstTagging DateTime
lastTagging DateTime
result Result
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime?
}
model User_nfc {
id Int @id @default(autoincrement())
description String
user User
nfc Nfc
nfcRoutine User_nfc_routine?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime?
}
model User_nfc_routine {
id Int @id @default(autoincrement())
daysArray String
fromTime DateTime
endTime DateTime
userNfc User_nfc
result Result[]
routine Routine
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime?
}
model User_nfc_alaram {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
deletedAt DateTime?
}
ㄱㅡㄴ데 스키마 바뀔때마다 풀받아야하니까 이거 부분은 prisma 폴더 부분은 다시 알아본대!
----------
yarn build
docker-compose up -d // db서버 띄워줌.
----
npx prisma2 migrate save --name 'name' --experimental
npx prisma2 migrate up --experimental
yarn dev
accout 먼저 생성해야함
mutation {
createOneUserAccount(data:{snsId: "edit here", provider:kakao}) {
id
}
}
mutation {
createOneUser(
data: { nickname: "daheeahn", birthdate: "2017-11-25T23:55:35.116Z", sex: female, userAccount:{connect:{id: 1}} }
) {
id
nickname
}
}
studio graphql-yoga로 써보기
이슈 올려놨다
https://github.com/zo0r/react-native-push-notification/issues/1342
nfc를 태그하면 앱을 실행시켜야 한다!
https://coding-dahee.tistory.com/144
성공 ㅎ.ㅎ
- iOS 알람
앱이 아예 꺼졌을 땐 알람을 1번밖에 못울린다. 앱을 켜기 전까지 local push를 반복적으로 보내는 방법밖에 없는데, 어떻게 할까?
백그라운드에 있을 땐 앱을 실행하는 것이 가능한 것 같음.
- 루틴 알람 말고 그냥 알람부터 하자!
** 로컬 스토리지에 저장되는걸로!
1. 앱 아예 종료 시 알람
- 반복적으로 보낼건가, 그러면 알람이 여러개 알림바에 남는게 되면 안됨
- 아니면 그냥 하면됨.
2. 백그라운드 알람
3. 포그라운드 알람
-
알람이 있으
- 캘린더는 직접 만들자.
- 캘린더 복사 를 위해 hover를 알아봤는데
https://codesandbox.io/s/o9q8vy70l5
이런 곳이 있긴 하지만 음... 일단 포기! 나중에 알아보자!
3/27일
- LongPressGestureHandler 이용ㅇ하면 꾹 눌렀을 때만 활성화되는 어떤걸 할 수도 있겠다!
renderLeft처럼 위로 올리는 제스처도 있나?
4/16 목 with 재규
identityToken 을 해독하면 user가 나오는데 그거 가지고 서버에서 db에 있는지 확인하고 jwt토큰 만들어줘.
그 jwt 토큰 가지고 내가 요청보낼 때 마다 헤더에 보내주면 됨.
kakao는 api가 따로 있어서
accessToken가지고 api 때리면 유저 정보 준다.
v2/user/me
하면
유저정보 쫙 나옴
구글도 token을 주는데 그거 해독한다음에 이메일이 unique 값이니까 그걸로 db에 있는지 찾고 jwt token 만들어서 준다.
-----
서버 start는 내가 수동으로 해야하는데 나중에 만나면 하자