분류 전체보기 83

Flutter - Link_Help 앱 개발

2021 국민대학교 소프트웨어융합대학 캡스톤 23팀 뉴로어소시에이츠 산학협력 Front-end개발팀 Project_intro 내부 Project UI 시연 영상 Introudce Me 김영민_Kim Young Min 국민대학교 소프트웨어학부 StudentID:20162820 Email: dudals2467@kookmin.ac.kr Github: https://github.com/kimyoungmin101 앱 실행 환경설정 가이드 #Android Studio install -https://developer.android.com/studio #Android Studio Flutter Plugin install #Flutter SDK install -https://flutter-ko.dev/docs/get-s..

플러터 2022.03.11

파이썬) 카카오 - 가사 검색 문제 풀이

bisect - 이진 탐색 bisect 모듈은 이진 탐색 알고리즘을 구현한 모듈이다. bisect.bisect 함수는 정렬된 리스트에 값을 삽입할 때 정렬을 유지할 수 있는 인덱스를 리턴한다. 문제 A 학급의 학생수는 총 7명이다. 7명의 성적은 다음과 같다. [33, 99, 77, 70, 89, 90, 100] 그리고 성적에 대한 학점은 다음과 같은 기준으로 정해진다. 90점 이상 : A 80점 이상 : B 70점 이상 : C 60점 이상 : D 0~59점 : F A학급 학생들의 학점을 순서대로 구하시오. 풀이 보통 이런류의 문제는 if else를 이용한 분기문으로 풀이하지만 bisect.bisect 함수를 사용하면 보다 우아하고 간결하게 문제를 풀수 있다. 다음과 같이 코드를 작성해 보자. [파일명:..

알고리즘 2022.03.11

(Android) OTT 앱

OTT 앱 인트로 따라하기 목차 ScrollView에 모션 레이아웃 구현하기 1차 AppbarLayout을 이용해 헤더 애니메이션 구현하기 ScrollView에 모션 레이아웃 구현하기 2차 ScrollView 내 부족한 내용 추가 및 다듬기 결과 화면 이번에 공부한 내용은 MotionLayout과 Cordinatorlayout이다 특정 모션을 주면 역동적인 앱을 만들 수 가 있는 점에서 매력적으로 배울 수 있는 부분이다. 먼저 MotionLayout과 Cordinatorlayout이 무엇인지 찾아보았다. MotionLayout으로 모션 및 위젯 애니메이션 관리 MotionLayout은 앱에서 모션과 위젯 애니메이션을 관리하는 데 사용할 수 있는 레이아웃 유형입니다. MotionLayout은 Constra..

Flutter - 인스타그램 이미지 픽 앱

프로젝트 목표 Test를 위한 미리 앱을 만들어달라는 회사의 요청으로 제작을 진행하였습니다. 나만의 이미지 를 Pick하는 기능을 구현하였고 이미지를 스와이핑 하는 동작은 인스타그램 스토리 형식을 착안하였습니다. 프로젝트 설명 인스타그램 스토리 형식처럼 내가 올린 사진을 클릭하여 넘길 수 있고 다른 주제로 넘어가 스토리 형식 이미지뷰를 관찰이 가능하도록 설정하여 내가 원하는 사진을 선택하는 기능을 구현하였습니다. 개발 방법 dart를 이용 플러터 클라이언트 개발을 진행하였고 db작업은 firebase의 firebasestorage를 이용하여 이미즐 저장하여 스토리 형식 이미지 파일을 넘길 수 있게 해주었고 database는 모두 firebase에 담아 활용하여 클라이언트에서 이미지들을 불러 만들어 진행하..

플러터 2022.03.07

kotlin - retrofit을 이용한 레시피 검색 앱 만들기

저번시간에 Retrofit2과 RecyclerView를 이용하여 만든 앱을 더욱 응용하여 https://www.foodsafetykorea.go.kr/api/newDatasetDetail.do 여기에 있는 공공API를 활용하여 레시피검색 앱을 만들어 보았다. https://www.foodsafetykorea.go.kr https://www.foodsafetykorea.go.kr www.foodsafetykorea.go.kr 공공데이터 포털을 들어가보면 많은 API들이 있다 이곳에 로그인을 하고 API KEY 인증 신청을하면 대부분 하루만에 API를 쓸 수 있는 권한을 부여받을 수 있었다!! 나는 레시피 DB가 있는 아래와 같은 API 사용을 신청했다 그러면 인증 key를 받으면 아래의 주소에 api에 접..

Android - RecyclerView와 Retrofit을 사용한 Api 불러오기

이번에 실습해본 내용은 Retrofit2을 이용하여 http://jsonplaceholder.typicode.com/photos 이곳에 있는 Api를 불러서 RecyclerView를 통해 데이터를 뿌려보았다. 1. 환경설정 Manifast Internet Permission 허용하기, app수준 buildgradle에 Okhttp, retrofit2, piccaso 권한 추가 implementation "androidx.recyclerview:recyclerview:1.1.0" implementation "androidx.recyclerview:recyclerview-selection:1.1.0-rc03" implementation 'com.squareup.okhttp3:okhttp:3.9.0' impl..

Android - ViewPager2, RecyclerView , NavigationLayout 사용하기

이번 실습은 ViewPager2와 NavigationLayout과 RecyclerView를 이용한 앱을 만들어 보았다. 간단하게 Home, Add, Profile 3개의 Fragment를 만들어주고 HomeFragment에만 RecyclerVeiw를 적용시켜 보았다. 1. BottomNavigationBar 생성 ㅁ BottomNavigationBar 를 만들어 준뒤 ViewPager2와 연결시켜준다. 그 이유는 ViewPager로 화면을 넘길때 BottomNavigationBar도 같이 넘어가야 하고 그 반대도 적용돼야하기 때문이다. MainActivty Xml은 ViewPager와 BottomNavigation으로 만들어준다. 그리고 res -> menu -> bottomnavi.xml에 item을 ..

Android - firebase 채팅기능 사용

1) firebase에서 프로젝트를 생성한다 2) app수준의 build.gradle에 firebase 기능 추가, plugins { id 'com.android.application' id 'kotlin-android' id 'com.google.gms.google-services' } dependencies { implementation 'com.google.firebase:firebase-database-ktx' implementation 'com.google.firebase:firebase-auth-ktx' implementation 'com.google.firebase:firebase-storage-ktx' } 3) 로그인 로그아웃을 위한 auth 선언 / RealtimeDatabase를 이용하..

Android - binding 사용하기

Android App개발 핵심기능인 Layout을 Activity에서 자유롭게 사용할 수 있도록 binding을 해준다. 아래는 HomeFragment의 biding 예제 이다. 1) biding 선언 private var binding: FragmentHomeBinding? = null 2 - 1) Fragment에서 view가 생성될때 bind 방법 override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) val fragmentHomeBinding = FragmentHomeBinding.bind(view) binding = fragmentHomeBind..

python - array[::]

Python array[::] 용법 간단한 파이썬 팁입니다. arr[::], arr[1:2:3], arr[::-1] 등으로 배열의 index에 접근하는 방법을 Extended Slices 라고 부릅니다. 설명 arr[A:B:C]의 의미는, index A 부터 index B 까지 C의 간격으로 배열을 만들어라는 말입니다. 만약 A가 None 이라면, 처음부터 라는 뜻이고 B가 None 이라면, 할 수 있는 데까지 (C가 양수라면 마지막 index까지, C가 음수라면 첫 index까지가 되겠습니다.)라는 뜻입니다. 마지막으로 C가 None 이라면 한 칸 간격으로 라는 뜻입니다. 예시 >> arr = range(10) >> arr [0,1,2,3,4,5,6,7,8,9] >> arr[::2] # 처음부터 끝까지..

알고리즘 2022.02.24