Kotlin Android부터 Firebase 서버 그리고 훌륭한 Chatbot 만들기

Kotlin Android부터 Firebase 서버 그리고 훌륭한 Chatbot 만들기

(5개의 수강평)

154명의 수강생
공개되지 않은 강의입니다.
지식공유자 · 유명식
106회 수업 · 총 11시간 55분 수업
평생 무제한 시청
수료증 발급 강의
수강 난이도 '입문'
박보성 프로필

환불도 안되는건가요? 박보성 4달 전

현재 버전이 안맞아서 강의를 내려놨는데 판매가 된다니 확인해보도록 하겠습니다. 라고 하셨는데 2강 이상을 들어버려서

0
김영성 프로필

Nested data class 문의 드립니다. 김영성 9달 전

data Class student (

var name: String,

var subject: Subject

) {

data Class Subject (

var math: Int,

var english: Int

)

}

이 형태인데... 만약 구조를 이름, 성적 (수학, 영어), 번호 이렇게 해야 한다면,,, 순서를 꼭 이렇게 해야 한다면 아래와 같이 하나요?

: (생략)

var subject: Subject,

var number: Int ( {

data Class Subject (

: (생략)

nested class가 왠지 마지막으로 가야 할거 같은데.. 위 구조 처럼 작성이 가능한가요?

1
배움배움배움 프로필

CoordinatorLayout 도 강의해주세용^^ 배움배움배움 10달 전

CoordinatorLayout 도 강의해주세용^^

이부분이 없더라구용;

1
TANY S 프로필

구글 로그인 옵션 요청에서 TANY S 8달 전

var gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)

.requestIdToken(getString(R.string.default_web_client_id))

.requestEmail()

.build()

"default_web_client_id" 가 빨간색으로 나오면서 에러가 뜨네요..

2
TANY S 프로필

정말로 버전 차이가 많이 나는것 같습니다. 꼭 답변 부탁 드립니다 TANY S 2018.11.26

이번 강의 똑같이 따라 했는데...빨간 글자가 2군데서 들어 옵니다...며칠을 헤메다가 답을 찾어서 나중에라도 안드로이드 스튜디오 최신버전(3.2.1)을 가지고 공부하는 분한테 도움이 될거 같아서 올립니다.

일단 실행은 되나 맞는지는 잘 모르겠습니다. 강의 하시는 분이 답을 주시기 바랍니다.

  1. FirebaseFirestore.getInstance().collection("users").get().addOnSuccessListener { querySnapshot ->

    for (item in querySnapshot.documents){

    var userDTO = item.toObject(UserDTO::class.java)

    arrayList.add(userDTO) // 여기 userDTO에 빨간불이 들어 옵니다.

    }

    <해결> if (userDTO != null) {

    arrayList.add(userDTO)

  2. class ReadRecyclerViewAdapter(initList: ArrayList) : RecyclerView.Adapter() {

    var list: ArrayList? = initList

    // 아래 부분이 parent 가 아니고 p0로 , viewType 이 아니고 p1 으로 자동생성 됨

    override fun onCreateViewHolder(p0: ViewGroup, p1: Int): RecyclerView.ViewHolder {

    var view =

    // 여기도 parent 가 아니고 p0 입니다

    LayoutInflater.from(p0!!.context).inflate(R.layout.item_recyclerview,p0,false)

    return CustomViewHolder(view)

    }

1
이종원 프로필

각 객체를 사용하는 이유와 방법의 설명이 없어서 안드로이드 처음하는 사람은 어렵네요 이종원 2018.11.13

.

0
이종원 프로필

프로젝트 실행 시 "Caused by: java.net.SocketException: Connection reset" 라는 에러가 뜨는데 이게 뭔가요? 이종원 2018.10.27

.

0
렘설 프로필

회원가입은되는데 로그인은 되지않습니다. 렘설 2018.10.23

오류가나면서 틀린것이 없는데도 오류가 납니다. 회원가입시 자동으로 로그인이 되기는하지만 로그아웃후 되지 않습니다.

1
choco12343 프로필

혹시 답변 부분에 하이퍼링크 추가할 수 있는 방법은 아녜 없는건가요? choco12343 2018.10.03

답변 부분에 유투브 링크를 넣어서 사용자가 그 링크로 넘어갈 수 있게 구현하고 싶습니다 그래서 다이얼로그플로우 response 부분에 html 태그를 넣어서 추가해봐도 링크인걸 인식을 못하더라구요... 저도 똑같이 안드로이드 앱으로 만든거라 페북 메세지 연동 이런것도 못할듯 싶은데ㅠㅠ 해결 방법이 있을까요?

1
gyuyoung park 프로필

edit_text에 글이 set되는 것은 비동기식으로 작동하는 건가요? gyuyoung park 2018.10.03

버튼을 눌러서 sharedPreference에 put을 했을때, 버튼의 영역안에 set이 없는데도 edit_text에 set이 되는 것은 비동기식으로 set이 작동해서 가능한건가요?

1
choco12343 프로필

recyclerview 어댑터 관련해서 질문 남깁니다! choco12343 2018.09.30

import ai.api.AIConfiguration.SupportedLanguages.Korean
import ai.api.AIConfiguration.SupportedLanguages.fromLanguageTag
import ai.api.android.AIConfiguration
import ai.api.AIDataService
import ai.api.model.AIRequest
import ai.api.model.Result
import android.os.AsyncTask
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.LinearLayoutManager
import android.support.v7.widget.RecyclerView
import android.text.TextUtils
import android.view.View
import android.widget.Button
import android.widget.EditText
import org.techtown.food_menu.R.id.chatText
import org.techtown.food_menu.adapter.ChatAdapter
import org.techtown.food_menu.adapter.MessageDTO
import java.util.ArrayList

class ChatActivity : AppCompatActivity() {
    var messageDTOs = arrayListOf<MessageDTO>()
    var aiDataService : AIDataService? = null
    private val recyclerview: RecyclerView? = null
    private val Adapter: ChatAdapter? = null
    private val llm: LinearLayoutManager? = null
    private val editText: EditText? = null
    private final var lang : ai.api.AIConfiguration.SupportedLanguages? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_chat)

        recyclerview?.findViewById<View>(R.id.chat_recyclerview)
        recyclerview?.adapter = Adapter
        recyclerview?.layoutManager = llm
        editText?.findViewById<View>(R.id.chatText)

        val btn = findViewById<View>(R.id.button) as Button
        btn.setOnClickListener {
            if (!TextUtils.isEmpty(editText?.text)) {
                messageDTOs!!.add(MessageDTO(true, editText?.text.toString()))
                Adapter!!.notifyDataSetChanged()
                recyclerview?.smoothScrollToPosition(messageDTOs.size - 1)
                TalkAsyncTask().execute(editText?.text.toString())
                editText?.setText("")
            }
        }

        var config = AIConfiguration("일부러 지웟어요",Korean,AIConfiguration.RecognitionEngine.System)
        aiDataService = AIDataService(config)
    }

    inner class TalkAsyncTask:AsyncTask<String, Void, Result>() {
        override fun doInBackground(vararg params: String?): Result {
            var aiRequest = AIRequest()
            aiRequest.setQuery(params[0])

            return aiDataService!!.request(aiRequest).result
        }

        override fun onPostExecute(result: Result?) {
            if (result != null) {
                makeMessage(result)
            }
        }
    }

    fun makeMessage(result: Result?) {
        var speech = result?.fulfillment?.speech
        messageDTOs.add(MessageDTO(false, speech))
        recyclerview?.adapter?.notifyDataSetChanged()
        recyclerview?.smoothScrollToPosition(messageDTOs.size - 1)
    }
}

}

이 코드인데 하울님이 하신대로 메인액티비티에서 따라할 때는 recyclerview.adpater 이렇게 해도 어댑터 연결이 잘되던 것이 프로젝트를 합치기 위해서 메인액티비티에서 인텐트로 연결되는 ChatActivity에서 하려니까 잘 되지 않았어요 그래서 이 코드대로 했는데 E/RecyclerView: No adapter attached; skipping layout 이 오류가 뜬다고 합니다ㅠㅠ 혹시 이 문제가 MainActivity가 아니어서 그런건가요? 해결 방법 알려주시면 감사하겠습니다ㅠㅠ
E/memtrack: Couldn't load memtrack module
09-26 18:26:41.770 1904-1917/? W/android.os.Debug: failed to get memory consumption info: -1
이 오류도 뜨네요...^^

3
홍석우 프로필

Type mismatch error 홍석우 2018.09.23

MainActivity 40번째 줄에서

Type mismatch: inferred type is ai.api.model.Result? but javax.xml.transform.Result? was expected

에러가 나요 ㅠㅠ

1
choco12343 프로필

혹시 자바로 만들어진 안드로이드 프로젝트 안에 코틀린 파일을 쓸 수 있나요? choco12343 2018.09.08

현재 졸업작품으로 안드로이드 앱을 만들고 있는데 자바를 이용해서 진행하고 있고 그 안에 챗봇 기능을 넣기 위해 이 강의를 구매했습니다 자바와 코틀린이 호환이 된다고는 하는데 자바로 만든 프로젝트 안에 코틀린 파일도 넣을 수 있는지 자바와 코틀린을 둘 다 동시에 사용할 수 있는지 질문 남깁니다ㅠㅠ 빠른 답변 부탁드립니다!

1
이원우 프로필

풀필먼트를 호출하고 결과를 받아오는 방법... 이원우 2018.08.27

비록 코틀린 안드로이드 개발자를 타겟으로 했기 때문에 커리큘럼에서는 빠졌지만...

풀필먼트를 어떻게 호출하고 결과를 받아오는지 아주 간단한 예제 정도는 강의해주셨으면 좋았을듯 합니다. ^^

1
렘설 프로필

애는굳이 마법봉 안쓰는 이유가있나요? 렘설 2018.08.13

자동생성을 안쓰는 이유가 특별히 있나요?

1
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스