묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
User Entity 생성 관련 질문입니다.
안녕하세요.강의 덕분에 코틀린을 잘 배우고 있는 수강생 입니다.다름이 아니라, 예저 소스에서 User Entity로 DB에 테이블을 생성하고 있는데,제가 별도로 만든 프로젝트에서는 동일하게 User로 Entity 어노테이션을 붙이고 애플리케이션을 시작하면 에러가 발생하길래 에러 내용으로 찾아봤더니, User Entity를 user라는 이름으로 테이블을 생성하려고 하는데, user는 사용할 수 없는 이름이라는 것 같습니다(예약어)예제 소스와 동일하게 설정을 했는데 제가 놓치고 있는 부분이 있는 걸까요?
-
해결됨실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
멀티 모듈에 대한 질문이 있습니다!!
안녕하세요 !! 자바 개발자가 되기 위해 학습하다가 코틀린을 새로 배우는 과정에서 이 강의를 듣게 된 학생입니다!!먼저 좋은 강의 제공해주셔서 정말 감사합니다!!멀티 모듈에서 Repository를 각각 api 모듈에 맞게 구현하고, Spring Data JPA Repository를 코어 모듈에 둔다고 하셨는데. 이런 경우에는 api 모듈에서 core와 관련된 그래들 설정(Querydsl or db 등)이 들어가겠구나 라는 생각이 들었습니다. 멀티 모듈의 장점 중 하나가 모듈의 역할에 맞게 의존성을 관리하는 것도 있다고 생각하는데, 이런 경우 이 장점을 잃지는 않을까 우려됩니다.그래서 저는 멀티모듈을 사용할 때, core 모듈에 Repository와 관련한 코드를 놓고, 사용하는 모듈에서 인터페이스, 혹은 Repository를 참조하는 구현체를 만들어 해당 클래스만 사용하게끔 유지하는 게 좋지 않을까 생각하는 편인데요. 혹시 강사님의 의견은 어떠신지 궁금합니다!!(적고 보니 강의 내용과는 조금 다른 질문인 것 같아 조금 죄송스럽네요 ㅠㅠ)
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
테스트 컨텍스트에 대한 질문입니다.
안녕하세요. 강의를 듣던중 테스트와 관련해서 한가지 궁금한 점이 있어서 질문 남깁니다.일단 저는 현업에서 @SpringBootTest 를 사용하지 않고 서비스 계층은 목킹을 해서 별도의 스프링 컨텍스트를 사용하지 않고 테스트를 하고 있습니다. 문제는 컨트롤러 계층을 테스트 할 때인데요. @WebMvcTest 로 테스트를 할 때 하나의 컨트롤러를 테스트 할때는 상관이 없지만 통합테스트 형태로 모든 테스트를 실행시에는 @WebMvcTest 가 각각 달린 컨트롤러 테스트마다 별도의 스프링 컨텍스트가 뜨기 때문에 테스트가 느려지는데요. (모든 컨트롤러 테스트가 같은 빈 조합을 사용한다면 같은 컨텍스트를 사용하겠지만 그런 경우는 거의 없기 때문에 각각의 테스트 클래스마다 대부분 스프링 컨텍스트가 새로 뜨는거 같습니다.)그래서 하나의 추상 컨트롤러 테스트에만 @WebMvcTest 를 달고 여기에 모든 테스트 대상 컨트롤러를 다 추가하고 이 추상 클래스를 상속받아 각각의 테스트 클래스를 사용하고 있습니다. 그래서 전체 테스트 시에는 테스트 속도가 빠라졌지만, 이렇게 하다보니 하나의 컨트롤러 테스트를 할 때도 상속받은 추상클래스에 있는 모든 테스트 컨트롤러가 다 임포트 되어 하나의 컨트롤러 테스트가 너무 느려졌고, 단위 테스트의 의미가 사라지는거 같습니다. 혹시 이와 관련해서 좋은 방법이 없을까 해서 질문을 남깁니다. 그리고 @SpringBootTest 시에는 각각의 테스트 말고 전체를 테스트 할 때 @WebMvcTest 를 할 때처럼 스프링 컨텍스트가 여러개 떠서 테스트 속도가 느려지는 문제가 없을까요? 항상 @SpringBootTest 는 무겁다는 생각 때문에 잘 사용을 안해서 궁금하네요. 그리고 현업에서 @SpringBootTest 를 자주 사용하는지도 궁금합니다. 저는 주로 @WebMvcTest, @DataJpaTest 이정도를 사용하고 도메인 계층은 일반 클래스 처럼, 서비스 계층은 모킹만 해서 스프링 도움없이 테스트를 하고 있습니다.
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
리턴 값 생략에 대하여
안녕하세요 자바에서 코틀린으로 넘어가고 싶어 강의를 들으며 차근차근 공부중입니다.인텔리제이에서 option + command + v 단축키를 사용하면 바로 리턴 타입을 알 수 있어서 자바 개발을 할 때 자주 사용 했습니다. 하지만 코틀린은 기본적으로 타입의 명시가 생략되어 있어서 그런지 같은 단축키로 리턴타입이 나오지 않더라구요기존 자바의 경우"ABC".startsWith("A"); 에 option + command + v 를 사용하면boolean a = "ABC".startsWith("A"); 이렇게 startsWith()의 리턴 값이 boolean이라는 것을 알 수 있는데코틀린의 경우val startsWith = "ABC".startsWith("A") 이렇게 나옵니다.제 생각에는val startsWith: Boolean = "ABC".startsWith("A")이런식으로 나와야 할 것 같은데 말이죠물론 메서드에 마우스를 올리면 리턴 타입을 알 수 있지만자바 개발하면서 익숙해진 단축키라 코틀린에서도 유용하게 활용할 수 있는지 궁금합니다.그리고 실무에서 개발 할 때에도 리턴타입이 없다면 많이 불편할 것 같은데 아직 자바에서 벗어나지 못해하는 걱정인걸까요...?
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
파이어베이스 realtime datatbase 데이터에 안뜹니다.
안녕하세요. firebase 데이터 추가 강의 듣고 있습니다. 실행에 오류는 없는데 눌러도 데이터에 변화가 없습니다. class ContentListActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_content_list) // Write a message to the database val database = Firebase.database val myRef = database.getReference("contents") myRef.push().setValue( ContentModel("title1", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblYPPY%2Fbtq66v0S4wu%2FRmuhpkXUO4FOcrlOmVG4G1%2Fimg.png", "https://philosopher-chan.tistory.com/1235?category=941578") ) myRef.push().setValue( ContentModel("title2", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FznKK4%2Fbtq665AUWem%2FRUawPn5Wwb4cQ8BetEwN40%2Fimg.png", "https://philosopher-chan.tistory.com/1236?category=941578") ) myRef.push().setValue( ContentModel("title3", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbtig9C%2Fbtq65UGxyWI%2FPRBIGUKJ4rjMkI7KTGrxtK%2Fimg.png", "https://philosopher-chan.tistory.com/1237?category=941578") ) val rv : RecyclerView = findViewById(R.id.rv) //리사이클 뷰 생성 // 데이터 삽입 val items = ArrayList<ContentModel>() items.add(ContentModel("title1", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblYPPY%2Fbtq66v0S4wu%2FRmuhpkXUO4FOcrlOmVG4G1%2Fimg.png", "https://philosopher-chan.tistory.com/1235?category=941578")) items.add(ContentModel("title2", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FznKK4%2Fbtq665AUWem%2FRUawPn5Wwb4cQ8BetEwN40%2Fimg.png", "https://philosopher-chan.tistory.com/1236?category=941578")) items.add(ContentModel("title3", "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbtig9C%2Fbtq65UGxyWI%2FPRBIGUKJ4rjMkI7KTGrxtK%2Fimg.png", "https://philosopher-chan.tistory.com/1237?category=941578")) val rvAdapter = ContentRVAdapter(baseContext, items) //어뎁터 생성 rv.adapter = rvAdapter rv.layoutManager = GridLayoutManager(this, 2) rvAdapter.itemClick = object : ContentRVAdapter.ItemClick{ override fun onClick(view: View, position: Int) { Toast.makeText(baseContext, items[position].title, Toast.LENGTH_LONG).show() val intent = Intent(this@ContentListActivity, ContentShowActivity::class.java) //url 넘겨주기 intent.putExtra("url", items[position].webUrl) startActivity(intent) } } } }
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
Unresolved reference: item
안녕하세요. 컨텐츠 리스트 만들기 - RecyclerView 2 강의의 7:17를 듣고 있습니다. 강의 똑같이 따라 치고 있는데 Unresolved reference: item 라고 오류가 나는데 왜 그러는 걸까요? package com.example.mysololife.contentsList import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import com.example.mysololife.R class ContentRVAdapter (val items : ArrayList<ContentModel>) : RecyclerView.Adapter<ContentRVAdapter.Viewholder>() { //아이템 하나 하나 가져와 하나의 레이아웃 만들기 override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ContentRVAdapter.Viewholder { val v = LayoutInflater.from(parent.context).inflate(R.layout.content_rv_item, parent, false) return Viewholder(v) } override fun onBindViewHolder(holder: Viewholder, position: Int) { holder.bindItems(items[position]) } //전체 아이템의 갯수가 몇 개 override fun getItemCount(): Int { return items.size } // 아이템의 내용물을 넣을 수 있도록 연결 inner class Viewholder(itemView: View): RecyclerView.ViewHolder(itemView){ fun bindItems(items : ContentModel){ val contetTitle = itemView.findViewById<TextView>(R.id.textArea) contetTitle.text = item.title } } }
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
repository mocking 문의
안녕하세요~ 최태현님 테스트 코드 작성에 있어서 고민이 있어 문의남깁니다. 이전까지 다른 강의 영상에서는 repository를 mocking해서 서비스를 테스트하는 영상을 많이 봤습니다. 그래서 서비스 테스트시에는 repository 를 mocking 하는것이 실무에서 흔한 방식이고 best practice라고 생각했습니다 그런데 실무에서 적용해보니 mocking을 하게되면 테스트 코드가 서비스 메소드의 내부 구현에 대해 너무 잘 알게되더라구요, 그러다보니 실제 코드의 내부 구현이 바뀌면 테스트 코드도 바뀌게 될 여지가 많더라구요.. 반면 스프링부트 테스트로 h2에 연결해서 하는 테스트는 상대적으로 느려 피드백이 늦는것이 단점일것같습니다. 개인적으로는 강의에 나온것처럼 스프링 부트 테스트로 h2에 연결해서 테스트하는 후자가 더 마음에 드는데요. 실제로 현업에서는 서비스 테스트시 둘중 어떤걸로 사용하시나요? 실제 강의하신것처럼 후자로 테스트를 많이 하시나요? 좋은 강의 감사합니다~
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
강의 질문이요
이 앱을 만들고 본인이 그 앱에 게시물을 올리면 자기만 볼 수 있게 할 수 있나요?? 몇 개를 올리고 자기가 올린 게시물만 모아볼 수 있게요..
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
프래그먼트 바인딩
똑같이 따라했는데 이런 오류가 생겼어요,, 검색해도 잘 안 나오고 뭐가 문제인지 모르겠습니다ㅠㅠ
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
함수 null 질문드립니다.
@nullable public String getName() { return name; } - 위 함수는 리턴타입이 reference 타입이니 어노테이션을 지우면 참조형식이 될거 같은데 플랫폼 타입이 되는데 함수만 그런 규칙이 적용이 되는건가요?
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
안녕하세요 질문이 있습니다!
안녕하세요~ 질문이있는데용 OPEN 키워드를 사용하지않고 사진의 코드를 실행시키면 값이 300으로 나오게되는데요~ Derived(300) 으로 부모가 호출이되고 자식의 프로퍼티가( override )가 아니기 때문에 부모의 초기화블록이 실행되면서 자식의 초기화되지 않는 init 블럭에 접근하지 않고 부모의 init에서 처리하기 때문에 300이 재대로 출력되는건가요?
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
처음 04:35초 메인패스트 부분부터 난관이네요..
MainFast에서 splashActivity 부분에 <intent-filter> 을 넣으니까 오류가 막 엄청뜨네요. 버전도 같은데 코드또한 약간 다릅니다. 강의에 안보이는 <activity 부분에 android:exported="ture" /> 도 저는 보입니다.. ERROR:C:\Users\i\AndroidStudioProjects\MySoloLife2\app\build\intermediates\packaged_manifests\debug\AndroidManifest.xml:25: AAPT: error: unexpected element <intent-filter> found in <manifest><application>. 라고 에러코드는 나와있습니다.
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
질문 있습니다.
코틀린에서는 null 사용을 안전하게 하기 위해서 null 이 들어갈 수 있는 변수를 완전히 다른 타입으로 간주하고 아래와 같이 효과적으로 관리할 수 있다. 라고 말씀해주셨는데요 그렇다면 String과 String? 타입은 엄연히 다른 타입 인것이고 String? 이 자체를 하나의 타입으로 간주해야하는건가요? String? 이렇게 생긴 타입은 코틀린에서는 클래스로 정의 되어 있지 않아서요..!
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
강의를 듣고 응용해봤는데 질문있습니다
강의의 게시판 만들기 부분을 실습하고 나서 게시글 양식으로 만드셨던 board_list_item.xml을 이렇게 변경해봤습니다. 나머지 글들은 강의에서 하던대로 따라해서 불러와지는게 되는데 제가 추가한 저 초록색사진은 글을 작성할때 즉 강의 상의 코드인 BoardWriteActivity.kt에서 사진이 첨부되면 그 첨부된 사진이 저 초록색사진에 같이 업로드 되게끔 만들고 싶습니다. 저 사진의 id값은 preview입니다. <?xml version="1.0" encoding="utf-8"?><ScrollView 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:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".Sell"> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> <androidx.appcompat.widget.Toolbar android:id="@+id/toolbar2" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" android:minHeight="?attr/actionBarSize" android:theme="?attr/actionBarTheme" app:titleTextColor="@color/white" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="판매글 작성" android:textSize="23sp" android:textStyle="bold"/> </androidx.appcompat.widget.Toolbar> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical"> <EditText android:id="@+id/et_newtitle" android:layout_width="330dp" android:layout_height="50dp" android:layout_marginLeft="20dp" android:layout_marginTop="70dp" android:gravity="center" android:maxLength="15" /> <EditText android:id="@+id/et_originalname" android:layout_width="330dp" android:layout_height="50dp" android:layout_marginLeft="20dp" android:layout_marginTop="20dp" android:gravity="center" android:hint="※주의 : 책 제목 그대로 써주세요 ※" android:maxLength="100" /> <EditText android:id="@+id/et_price" android:layout_width="330dp" android:layout_height="50dp" android:hint="숫자 옆에 원을 붙여주세요" android:layout_marginLeft="20dp" android:layout_marginTop="20dp" android:gravity="center" android:maxLength="10" /> <ImageView android:id="@+id/imageupload" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/baseline_add_black_48dp" android:layout_marginTop="30dp" /> <EditText android:id="@+id/et_newdetail" android:layout_width="334dp" android:layout_height="260dp" android:layout_marginLeft="20dp" android:layout_marginTop="30dp" android:layout_marginBottom="10dp" android:background="@drawable/boxline" android:ems="10" android:gravity="top" android:hint="내용을 입력하세요." android:maxHeight="200dp" android:maxLength="200" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="96dp" android:layout_marginBottom="60dp" android:gravity="center" android:orientation="horizontal" android:paddingTop="30dp"> <Button android:id="@+id/upload" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="50dp" android:text="올리기" /> <Button android:id="@+id/cancel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="취소" /> </LinearLayout> </LinearLayout> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/newtitle" android:layout_width="35dp" android:layout_height="wrap_content" android:layout_marginLeft="15dp" android:layout_marginTop="90dp" android:text="제목" android:textSize="16sp" /> <TextView android:id="@+id/newname" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="12dp" android:layout_marginTop="160dp" android:text="상품명" android:textSize="15sp" /> <TextView android:id="@+id/price" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginTop="235dp" android:text="판매가격" android:textSize="13sp" /> <TextView android:id="@+id/newpicture" android:layout_width="35dp" android:layout_height="17dp" android:layout_marginLeft="15dp" android:layout_marginTop="300dp" android:text="사진" android:textSize="16sp" /> <TextView android:id="@+id/newdetail" android:layout_width="35dp" android:layout_height="28dp" android:layout_marginLeft="15dp" android:layout_marginTop="370dp" android:text="내용" android:textSize="16sp" /> </FrameLayout> </FrameLayout></ScrollView> package com.example.joonggo2import android.content.Intentimport android.graphics.Bitmapimport android.graphics.drawable.BitmapDrawableimport android.net.Uriimport android.os.Bundleimport android.provider.MediaStoreimport android.util.Logimport android.widget.Buttonimport android.widget.Toastimport androidx.appcompat.app.AppCompatActivityimport com.bumptech.glide.Glideimport com.example.joonggo2.databinding.ActivityBoardInsideBindingimport com.example.joonggo2.databinding.ActivityMainBindingimport com.example.joonggo2.databinding.ActivityMifBindingimport com.example.joonggo2.databinding.ActivitySellBindingimport com.google.firebase.ktx.Firebaseimport com.google.firebase.storage.ktx.storageimport java.io.ByteArrayOutputStreamclass Sell : AppCompatActivity() { private lateinit var binding: ActivitySellBinding private val TAG = Sell::class.java.simpleName val storage = Firebase.storage private var isImageUpload = false override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivitySellBinding.inflate(layoutInflater) setContentView(binding.root) binding.upload.setOnClickListener{ val title = binding.etNewtitle.text.toString() val originalname = binding.etOriginalname.text.toString() val price = binding.etPrice.text.toString() val content = binding.etNewdetail.text.toString() val uid = FBAuth.getUid() val time = FBAuth.getTime() Log.d(TAG, title) Log.d(TAG, content) val key = FBRef.writein.push().key.toString() FBRef.writein .child(key) .setValue(BoardModel(title, originalname, price, content, uid, time)) Toast.makeText(this,"게시물이 업로드 되었습니다.", Toast.LENGTH_LONG).show() if(isImageUpload == true) { imageUpload(key) } val intent = Intent(this, AfterLoginmain::class.java) intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) startActivity(intent) } binding.cancel.setOnClickListener { val intent = Intent(this, AfterLoginmain::class.java) intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) startActivity(intent) } binding.imageupload.setOnClickListener { val gallery = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI) startActivityForResult(gallery, 100) isImageUpload = true } } private fun imageUpload(key : String) {// Get the data from an ImageView as bytes val storageRef = storage.reference val mountainsRef = storageRef.child(key + ".png") val imageView = binding.imageupload imageView.isDrawingCacheEnabled = true imageView.buildDrawingCache() val bitmap = (imageView.drawable as BitmapDrawable).bitmap val baos = ByteArrayOutputStream() bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos) val data = baos.toByteArray() var uploadTask = mountainsRef.putBytes(data) uploadTask.addOnFailureListener { // Handle unsuccessful uploads }.addOnSuccessListener { taskSnapshot -> // taskSnapshot.metadata contains file metadata such as size, content-type, etc. // ... } } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if(resultCode == RESULT_OK && requestCode == 100) { binding.imageupload.setImageURI(data?.data) } }} 위 사진두개는 강의에서 하신 BoardWriteActivity.kt와 역할이 같은 xml과 kt파일입니다. 지금 이 코드에서 글과 갤러리에서 사진을 첨부하는 기능은 모두 구현되어있습니다. 그런데 사진도 메인화면에 뜨게끔 하려니 너무 막막해서 질문드립니다...
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
게시판 만들기에서 게시글 ListView만들기 에서 발생한 문제 질문드립니다.
강의를 보며 개발자님과 똑같이 하지 않고 저에게 필요한 부분들을 제 스타일대로 바꾸면서 듣고 있습니다. 잘 되다 이번에 문제가 생겼습니다. 현재 레이아웃이 겹칩니다.. 어느 부분의 코드를 보여드리야할까요.. 추가적으로 어떤 걸 말씀드려야하는지 알려주시면 더 자세하게 질문하겠습니다. 도와주세요
-
미해결윤재성의 Kotlin 기반 안드로이드 앱 개발 Part4 - 실전 프로젝트
그대로 작성했는데.. 스플래시화면에 로고가 안보입니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. setTheme(R.style.Theme_MapService) 입력 전에는 MainActivity 테마에 로고가 잘 나오는걸 확인했는데요.. setTheme(R.style.Theme_MapService) 입력 후 확인해보면 splash.xml에서 설정한 android:src="@drawable/soft_logo"없이 android:drawable="@color/white"만 보이는데요 무슨문제일까요...
-
미해결1:1채팅 만들기(Android + Kotlin + Firebase)
개복님 말씀대루 다했는데 도중에 앱이 꺼져용
- 개복님 수업 잘듣고 있습니다. 이번에 최신버전 설치해서 말씀하신거 따라 하구 있는데 , 오류가 뜨는건 아닌데 앱을 구동시키니 팅겨버리네요. ㅠ 로그캣에서 에러난 곳을 살펴보니 auth=firebase.auth 여기서 오류가 난거 같습니다. 말씀하신거 중에서는 apply plugin: 'com.google.gms.google-services' 한개 못했는데, 최신버전에는 plugin { id' '} 이렇게 되있는 곳에 ' com.google.gms.google-services ' 집어넣으려고 하니 오류가 떠서 못집어넣었어요. 제가 잘못생각하는 건가용 .. 개복님이 보기에 한심해보이겠지만 ㅠㅠ 도와주세용 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결1:1채팅 만들기(Android + Kotlin + Firebase)
안녕하세요. 말씀하신 import 추가했는데 오류가 또 뜨네요 ㅠ
- 버전은 4.0.1입니다 . 처음에는 최신버전으로 하다가 바꿔서 4.12 로 했구. 방금 4.0.1로 했는데 똑같이 뜨네요 ㅠ 인프런 질문 검색해보니 다른분도 똑같이 질문했던데 답변이 안달렸더라구여. 밑에 사진은 그분거 입니다. 선생님 강의 들으면서 공부하고 있었는데 여기서 막히네요 ㅠ
-
미해결1:1채팅 만들기(Android + Kotlin + Firebase)
안녕하세욤 강의 잘보고 있습니다
- 붙여 넣기 하는 와중에 auth 마지막 부분이 오류가 발생해요. 어떻게 할수 있을까요?? 강의 잘보고 있습니다. 꾸벅 는 1:1 문의하기를 이용해주세요.
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
이미지 이름 오류
drawable 폴더에 splash 이미지 파일이 있는데 왜 이미지뷰에서 스플래쉬이미지가 적용이 안될까요?