분류 전체보기
-
안드로이드 앱 개발 연습 - 10 | Camera & Gallery (with Permission)Archive/캡스톤디자인 2022. 4. 3. 00:38
Camera & Gallery (with Permission) build.gradle (:app) ... android { buildFeatures { viewBinding true } ... } dependencies { implementation "androidx.activity:activity-ktx:1.3.1" implementation "androidx.fragment:fragment-ktx:1.3.1" ... } MainActivity.kt class MainActivity : AppCompatActivity() { val binding by lazy { ActivityMainBinding.inflate(layoutInflater) } lateinit var cameraPermission: A..
-
안드로이드 앱 개발 연습 - 9 | DatabaseArchive/캡스톤디자인 2022. 4. 1. 22:41
SQLite DB.kt class DB(context: Context, name: String, version: Int): SQLiteOpenHelper(context, name, null, version) { override fun onCreate(db: SQLiteDatabase?) { val create = "create table memo ('no' integer primary key, 'content' text, 'datetime' integer)" db?.execSQL(create) } override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) { } fun insertMemo(memo: Memo) { val va..
-
안드로이드 앱 개발 연습 - 8 | StorageArchive/캡스톤디자인 2022. 4. 1. 19:34
내부 저장소 FileUtil.kt object FileUtil { fun readTextFile(fullPath: String): String { val file = File(fullPath) if (!file.exists()) return "" val reader = FileReader(file) val buffer = BufferedReader(reader) var temp = "" val result = StringBuffer() while (true) { temp = buffer.readLine() if (temp == null) break; else result.append(buffer) } buffer.close() return result.toString() } fun writeTextFil..
-
안드로이드 앱 개발 연습 - 7 | PermissionArchive/캡스톤디자인 2022. 3. 28. 16:11
명세 유형 권한 명세 특정 데이터나 기능의 사용 여부 권한을 사용자로부터 내려받기 위한 명세. AndroidManifest.xml 파일에 태그에 저장된다. 기능 명세 특정 기능을 사용할 수 있는 안드로이드 폰에서만 플레이스토어에서 내려받을 수 있도록 하는 명세. AndroidManifest.xml 파일에 따로 추가하지 않아도 해당 기능을 사용할 때 시스템이 자동으로 부여한다. 위의 기능 명세가 작성된 앱은 카메라가 없는 스마트폰에서는 다운로드할 수 없다. 권한 수준 일반 권한 (Normal Permission) 개인정보의 노출이 직접적으로 일어나지 않는 정도의 권한으로, AndroidManifest.xml에 명세하여 권한 승인을 받는다. Permission Description ACCESS_NETWORK..
-
Portfolio Page with React - 1 | 리액트 환경 구축Archive/포트폴리오 페이지 2022. 3. 27. 17:12
Portfolio Page 프로젝트 지금까지 크던 작던 만들어왔던 프로젝트들을 한 곳에 보기 좋게 전시하고 싶다는 생각이 문득 들었다. 하나하나 모으다 보면 내 경력도 될 것이고, 개발 공부를 함에 있어서 원동력도 될 것이라 생각한다. 주변에 많은 사람들이 사용하는 좋은 포트폴리오 서비스들이 많지만, 이왕이면 웹 개발을 주력으로 공부하는 입장에서 포트폴리오 페이지 정도는 혼자서 만들어 써야 하지 않냐는 생각이 들었다. 부끄럽게도 지금까지 리액트를 자주 써오면서도 항상 프로젝트를 끝까지 진행하지 못해 배포는 해본 경험이 없기에, 이번에는 리액트로 포트폴리오 페이지를 배포하는 부분까지 진행하고자 한다. 기본 설정 현재 Windows 환경의 데스크톱을 사용 중이지만, 개발 공부를 할 때는 WSL을 이용해 Ub..
-
안드로이드 앱 개발 연습 - 6 | ViewPager & TabLayoutArchive/캡스톤디자인 2022. 3. 27. 01:10
ViewPager with Fragment FragmentAdapter.kt class FragmentAdapter(fragmentActivity: FragmentActivity) : FragmentStateAdapter(fragmentActivity) { var fragmentList = listOf() override fun getItemCount(): Int { return fragmentList.size } override fun createFragment(position: Int): Fragment { return fragmentList.get(position) } } MainActivity.kt class MainActivity : AppCompatActivity() { val binding ..
-
안드로이드 앱 개발 연습 - 5 | ViewArchive/캡스톤디자인 2022. 3. 27. 00:49
CustomView (in frameLayout) MainActivity.kt class MainActivity : AppCompatActivity() { private val binding by lazy { ActivityMainBinding.inflate(layoutInflater) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(binding.root) val customView = CustomView(this, "This is my view") binding.frameLayout.addView(customView) } } class CustomView(cont..
-
안드로이드 앱 개발 연습 - 4 | FragmentArchive/캡스톤디자인 2022. 3. 25. 17:26
Activity에 Fragment 추가 frameLayout MainActivity.kt class MainActivity : AppCompatActivity() { val binding by lazy { ActivityMainBinding.inflate(layoutInflater) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(binding.root) setFragment() } fun setFragment() { // Transaction: begin transaction => add fragment => commit transaction val listFrag..