묻고 답해요
129만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
바로 jetpack을 사용하는 강의를 들어도 될까요??
플러터 개발자로 일하고 있는데 안드로이드로 전향하고 싶어서 들어보고 있는중입니다. 현재 대부분의 취업공고에 jetpack기술을 요구하고있는데 xml방식으로 안하고 바로 jetpack으로 넘어가도 될까요 ?
-
미해결모던 안드로이드 - Jetpack Compose 입문
구글맵 질문입니다
현재 compose에서 구글맵 사용가능한거 같은데 혹시 관련 예제 있으신가요??
-
미해결[중급편] 코인 가격 모니터링 앱 제작 (Android Kotlin)
섹션 4 다 완성하고 실행시켜보니 NumberFormatEx이 뜨네요
FATAL EXCEPTION: DefaultDispatcher-worker-1 Process: com.dk.coinpriceapp, PID: 12025 java.lang.NumberFormatException: For input string: "2024-04-27 11:22:36" at jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054) at jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110) at java.lang.Double.parseDouble(Double.java:660) at com.dk.coinpriceapp.view.main.MainViewModel$getAllSelectedCoinData$1.invokeSuspend(MainViewModel.kt:64) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42) at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664) Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@dc79e9b, Dispatchers.IO] 에러 내용은 이렇구요 써저있는데로 잘 적은거 같은데 어느 부분에서 실수가 있는지 잘 모르겠습니다. 이건 소스코드 입니다.https://github.com/dong-hei/Android_CoinMonitering_App
-
미해결[중급편] 친절한 JETPACK 개론 <상> (Android Kotlin)
[Retrofit 간단한 예제 변경 + RecyclerView 추가] 에 databinding 추가해 보았습니다.
안녕하세요, 좋은 강의 만들어 주셔서 감사합니다. [Retrofit 간단한 예제 변경 + RecyclerView 추가] 강의 말미에 말씀해주신대로 recyclerview에 databinding 을 추가해 보았습니다. (Android view에 대한 접근 강의 마지막 챕터 databinding + adapter 참고해서 )화면에 데이터가 나오긴 하는데 제대로 적용된것이 맞는지 궁금합니다. + 추가적으로, MainActivity에서 databinding이용해서 viewModel 데이터 결합을 해줘야 하는건지 궁금합니다. (아직 dataBinding 다른 라이브러리와 함께 사용할때 헷갈리는 부분이 많아서ㅠ )답변 주시면 감사하겠습니다. 변경된 부분은 1. text_row_itemCustomAdatperactivity_main.xmlMainActivitytext_row_item : : <layout> 감싸고 data class Post로 데이터 결합 <layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <variable name="myData" type="com.example.a04withrecyclerview.model.Post" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/myText" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@{myData.title}" android:textSize="20dp"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="******" /> </LinearLayout> </layout>CustomAdapterMyviewHolder dataBinding으로 수정class CustomAdapter(private val dataSet : ArrayList<Post>) : RecyclerView.Adapter<CustomAdapter.MyViewHolder>() { class MyViewHolder(binding : TextRowItemBinding) : RecyclerView.ViewHolder(binding.root){ val text : TextView = binding.myText } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder { //val view = LayoutInflater.from(parent.context).inflate(R.layout.text_row_item, parent, false) val view = DataBindingUtil.inflate<TextRowItemBinding>(LayoutInflater.from(parent.context), R.layout.text_row_item, parent,false) return MyViewHolder(view) } override fun onBindViewHolder(holder: MyViewHolder, position: Int) { holder.text.text = dataSet[position].title } override fun getItemCount(): Int { return dataSet.size } }activty_main : <layout> 감싸기<layout> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/rv" android:layout_width="match_parent" android:layout_height="match_parent"/> </androidx.constraintlayout.widget.ConstraintLayout> </layout>MainActivity: dataBinding 적용class MainActivity : AppCompatActivity() { private lateinit var binding : ActivityMainBinding private lateinit var viewModel : MyViewModel override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() binding = DataBindingUtil.setContentView(this, R.layout.activity_main) ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -> val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) insets } viewModel = ViewModelProvider(this).get(MyViewModel::class.java) viewModel.getPostAll() //val rv = findViewById<RecyclerView>(R.id.rv) viewModel.liveWordList.observe(this){ val customAdapter = CustomAdapter(it as ArrayList<Post>) binding.rv.adapter = customAdapter binding.rv.layoutManager = LinearLayoutManager(this) } } }
-
미해결[중급편] 친절한 JETPACK 개론 <상> (Android Kotlin)
Navigation Data Transfer Safe Args 강의중에서
override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?, ): View? { val view = inflater.inflate(R.layout.fragment_blank1, container, false) val action = BlankFragment1Directions.actionBlankFragment1ToBlankFragment2("ABCDE")위의 코드중에서 "ABCD" 부분에서 빨간줄이 생기고 오류가 나네요 ... 왜 그럴까요 ???소스코드는 아래 GITHUB 에 올려두었습니다https://github.com/dongguntechnology/NaviDataTransfer
-
미해결Flutter로 SNS 앱 만들기
섹션7 강의 듣는중 플러터 업그레이드 했어요. 에러 발생했습니다.
에러가 발생했어요.
-
해결됨Flutter로 SNS 앱 만들기
섹션 7에서 게시글 이미지 슬라이드 기능 추가를 보고있어요
섹션 7에서 게시글 이미지 슬라이드 기능 추가를 보고있어요이미지 말고 동영상을 넣고 싶은데 그거는 어떻게 하면 됩니다.
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
LoginActivity binding
LoginActivity에 binding을 하기 위해 코드를 작성을 했는데, 자꾸 오류가 발생합니다.
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
CardStackView 구현 강의에서 CardStackLayoutManager을 찾을 수가 없어요
코드를 쳐도 아래에 자동입력 뜨는게 없고, 그대로 작성해도 빨간 글씨로 떠요
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
안드로이드 스튜디오에서 프로젝트를 만들었으나, 레이아웃 폴더? 등 강사님께서 만든 프로젝트와 다르게 저는 폴더가 없습니다.
안드로이드 스튜디오에서 프로젝트를 만들었으나, 레이아웃 폴더? 등 강사님께서 만든 프로젝트와 다르게 저는 폴더가 없습니다. 혹시 어떤 문제일까요?dependen... 뭐시기 이거 하려하는데 gradle? 파일이 없는거같아요
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
프로젝트를 새로 만들었는데, gradle 파일에서 플러그인이 오류가 발생해요
프로젝트를 새로 만들었는데, gradle 파일에서 플러그인이 오류가 발생해요위 사진처럼 빨강색으로 뜨네요.어떻게 해결해야하나요?
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
cardstackview 이미지가 어디있나요?
[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)'cardStackView 구현' 강의 에서 이미지 파일을 강의 내에 파일로 등록해두었다고 하는데 어디서 다운로드 받나요?
-
해결됨Flutter로 SNS 앱 만들기
Mac개발,VSCode개발 하시는분들 iOS 대응 문제 참고하세요
강사님께서 ios대응은 준비중이라 하셔서 맥은 안되나했는데제가 맥 vscode로 ios시뮬레이터 사용해서 강의 마쳤는데별 이상 없었습니다. 다만 사진첩권한을 허가해줘야 되는데ios>Runner>info.plist 파일에서 <key>NSPhotoLibraryUsageDescription</key> <string>사진첩 권한을 허가해주세요.</string> <key>NSCameraUsageDescription</key> <string>카메라 권한을 허가해주세요.</string> <key>NSMicrophoneUsageDescription</key> <string>마이크 권한을 허가해주세요.</string>해당 권한코드를 추가해주시면 됩니다.또 저는 임펠러엔진 관련 체크메세지가 떳었는데 <key>FLTEnableImpeller</key> <true/>까지 추가해주시면 됩니다.그리고 문제 창에BuildContext관련 참고에러 메세지가 엄청나게 뜰텐데이건 강의의 상태관리를 프로바이더를 사용해서context.어쩌고 하는 코드들이 많아서 그렇습니다.해결방법은 프로바이더 호출을 변수에 따로 담아서 불러오면 되는데 크리티컬한 문제는 아니라 작동은 됩니다. 그래도 강사님께서 상태관리를 RiverPod으로된 리뉴얼된 강의를 제작해주신다면 더 좋지 않을까 싶긴한데.. 이건 미래의 교육생분들과 강사님께 맡기겠습니다 열심히 공부하세요 화이팅.
-
미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
애뮬레이터 Intel HAXM 다운로드가 안돼요
데스크탑에서는 강의처럼 잘 되었는데, 노트북에서는 안되네요.. 따로 Intel HAXM을 따로 다운 받았는데도 안되네요... 왜이럴까요?ㅠㅠㅠ제어판 보시면, Intel HAXM 이 설치되어있는데도 작동이 잘 안되네요..답변부탁드립니다. 감사합니다.
-
해결됨Flutter로 SNS 앱 만들기
플러터에서 forEach문 보다 for룹을 사용을 권장하는 문제와 context 바로사용으로 체크메세지가 많이 뜨시는분들
안녕하세요 강의 잘보고있습니다.그런데 vs코드가 삭제로직에 사용된 2군데의 forEach 룹중 한군대의 forEach룹을 자동으로 for in 룹으로 변경하길레 살펴보니 플러터에서는 forEach문 사용이 권장되지 않는다는걸로 보입니다. 예를들어 삭제함수의 void _deleteImage(List<String> imageUrls) { imageUrls.forEach((element) async { await firebaseStorage.refFromURL(element).delete(); }); }의 코드는 void _deleteImage(List<String> imageUrls) async { for (String imageUrl in imageUrls) { await firebaseStorage.refFromURL(imageUrl).delete(); } } 로 수정하면 되는것 같네요. 또 VSCode에서 context를 함수바디에 바로 사용하는 문제로 체크메세지가 너무 많이 뜨는데대표적으로 feed_card_widget.dart 파일 삭제버튼의 onPressed:(){} 내에 LikeProvider,ProfileProvider를 호출하는 부분들의 context를 바로 사용하는것보다 final likeProvider = context.read<LikeProvider>();이런식으로 변수에 담아서 호출하는 방식을 사용하라는 것 같습니다. 큰문제는 아닌데 강의보시는분들 참고하세요
-
미해결안드로이드 모바일 앱 모의해킹과 시큐어코딩
인시큐어뱅크 로그인 오류
인시큐어뱅크 설치후 로그인할 때 denish랑 jack해봤는데 둘다 invaild credentials 라고 떠요
-
해결됨Flutter로 SNS 앱 만들기
섹션7 게시글목록화면 _게시글정보 가져오기
섹션7 게시글목록화면 _게시글정보 가져오기에서 상태관리 하고 있는 게시글의 데이터 출력 메세지가 달라서요..강의 화면과 저랑 달리 나와서요강의사진제 컴퓨터사진logger가 안 먹고 있는거죠..압축파일 보냈어요..
-
미해결[중급편] 친절한 JETPACK 개론 <상> (Android Kotlin)
viewModel 초기화 관련 질문드려요
저번 강의에서는 viewModel 초기화 시에 Activity에 viewModel을 선언하고 Fragment에서는 viewModel 선언 시 by activityViewModels 를 사용했던 기억이 있습니다. 현재 해당 강의를 실행해볼 환경이 아니여서 그런데 강의 코드대로 구동을 할 경우는 화면 회전 시 카운터 값이 0으로 초기화 되게 되나요? 아니면 LiveData를 사용할 경우 해당 viewModel 초기화를적용하지 않아도 데이터 값이 유지되게 되나요?
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
이미지 여러 개 업로드 하는 방법
imageArea1, imageArea2 ~ imageArea5 까지만들고 5개 각각의 버튼을 클릭했을 때showImageUploadDialog 다이얼로그에서 갤러리 버튼 클릭시 isImageUpload = true하고이 이미지 업로드 함수를 5번 실행하게 하면 될 것 같은데 업로드 함수 안을 수정해야 하는 건가요?? https://github.com/chihyeonwon/Capstone-Design/blob/master/app/src/main/java/com/example/giveback/GetBoard/GetBoardWriteActivity.kt
-
미해결[중급편] 친절한 JETPACK 개론 <상> (Android Kotlin)
Fragment에서 ViewBinding과 DataBinding 초기화 차이가 궁금합니다.
ViewBinding과 DataBinding 각 강의에서 fragment에 binding을 초기화해주는 부분에 차이가 있습니다. ViewBinding의 경우에는 fragment의 생명주기로 인한 메모리 누수 방지를 위해 onDestroyView에서 binding = null 처리를 해주기 위해 _binding, binding을 따로 선언해주는 것으로 알고 있는데요. DataBinding의 경우는 ViewBinding과는 또 다른것인지요? 아니면 DataBinding의 경우 역시 private var _binding: FragmentTestBinding? = nullprivate val binding get() = _binding으로 초기화를 해주는 것이 메모리 누수 예방을 위해 더 좋은 것인지 궁금합니다.