안드로이드 스튜디오

허현진·2021년 9월 10일
0

summary

https://www.notion.so/3-a038e238f3484664b4d49572b65400d1

코틀린 장점

  • 버그가 적다
  • 간결하다
  • 많이 사용중
  • Java와 완벽히 호환

3-2 코틀린 맛보기

  • println : console 창에 출력, 버그 발견할 때 사용
  • Toast 메시지 : 어플에 나타남

3-3 Kotlin 기초 문법 맛보기(1)

  • 변수 : var
  • 컬렉션 : 리스트(List), 맵(Map)
    1. 리스트 - 순서를 가지고 있는 형태의 자료구조, 같은 타입만 사용 가능
      ex) var numList = listOf(1,2,3)
      println(numList[0]) --> 1
      var stringList = ListOf("a","b","c")
      pritnln(stringList[1]) --> b
      println(stringList.size) --> 3
    2. 맵 - 키(key)-벨류(value)값의 묶음 ==사전
      ex) var nameMap = mapOf("FirstName" to "Rtan", "LastName" to "Lee")
      --> FirstName: 키, Rtan : 벨류
      --> println(nameMap["firstName"]) : rtan
      --> pringln(nameMap.keys) : 키들 확인
  • listOf(), mapOf() 는 읽이 전용 모드이므로 수정 불가능 --> 수정가능하게 하려면 : mutableListOf(), mutableMapOf()사용
  • mutableListOf()
  1. add : 새로운 값 마지막에 추가
    ex) var alphabetList = mutableListOf("a","b","c")
    alphabetList.add("d")
  2. n번째에 값 추가
    ex) alphabetList.add(2,"d")
  3. 값 변경
    ex) alphabetList[0] = "A"
    alphabetList.set(1,"B")
  4. 값 제거
    ex) alphabetList.remove("d")
    --> 같은 값이 있으면 가장 먼저 나오는 값 제거
    alphabetList.removeAt(3)
    --> n번째 값 제거
  • mutableMapOf()
  1. 추가 및 변경: put
  2. 삭제 : remove
  • 리스트 안에 맵 추가 가능
    var students = mutableListOf(
    mutableMapOf("name" to "Rtan"),
    mutableMapOf("name" to "Kotlin")
    )
    --> [{name=Rtan},{name=Kotlin}]

  • toUpperCase() : 모든 문자열 대문자로

  • split() : 해당 문자 기준으로 나누기

3-4 Kotlin 기초 문법 맛보기(2)

  • 함수 : fun()
  • 리턴X
    ex) fun printSum(num1: Int, num2: Int) {
    println(num1+num2)
    }
    printSum(3,5) --> 8
    printSum(4,-1) --> 3
  • 리턴O
    ex) fun sum(num1: Int, num2: Int) : Int{
    return num1+num2
    }
    sum(3,5)
  • 타입
    ex) var one: Int = 1
    var pi: Double = 3.14
  • 반복문
    for( i in 0..99) { // 0..99 : 범위
    println(i)
    }
    var languages = listOf("Korean","English", "Kotlin", "Python", "Java", "JavaScript")
    for (lang in languages) {
    println(lang)
    }

var users = listOf(
mapOf("FirstName" to "르탄", "LastName" to "박"),
mapOf("FirstName" to "안드", "LastName" to "이"),
mapOf("FirstName" to "로이", "LastName" to "김"),
mapOf("FirstName" to "개발", "LastName" to "최"),
mapOf("FirstName" to "스파", "LastName" to "김"),
)
for (user in users) {
println(user)
}

4-2 새로운 액티비티 시작하기(1)

Intent

  • 어떤 작업을 하겠다는 의도를 표현하는 용도

  • 다른 액티비티를 시작할 때 사용
    ex) Intent(this, IstjActivity::class.java)
    this : 현재 코드가 적혀있는 곳 (출발지 액티비티)
    Istj~~ : 도착지 액티비티
    IstjActivity - 액티비티 객체
    ::class.java - 참조를 위한 클래스

  • 주고 싶은 정보 담아서 전달 가능
    : putExtra(key,value)
    key - 다른 화면에서 데이터를 확인할 때 쓰는 값
    value - 전달하려는 값

    4-3 새로운 액티비티 시작하기(2)

  • 인텐트에 담겨있는 데이터 확인
    : getStringExtra(key)

  • Toast.makeText(this,personalKey,Toast.LENGTH_LONG.show()
    this - IstjActivity
    : IstjActivity의 context를 이용해서 personalKey에 들어있는 정보를 메시지로 띄워주고 Toast의 길이는 LENGTH_LONG으로 보여주겠다.

  • intent의 this : 어디서 시작할지 보여주기 위함

  • toast의 this : 어디서 보여줄지 표현하기 위함

  • intent와 Toast.makeText의 첫번째 값은 context를 전달해 주어야 함.
    --> context :현재 상태의 맥락을 의미, 현재 어디에 있는지, 어느 화면에 있는지에 대한 정보

  1. Activity에 있는 context를 쓰겠다 : this

  2. View에 있는 context를 쓰겠다 : view.context

    view.context vs this

    view에는 view를 생성할 때 사용한 context가 들어있음. --> view.context를 하면 view가 만들어질 때 사용한 context가 들어가 있다.
    --> view에 들어있는 context는 view가 속한 액티비티의 context가 들어간다. (MainActivity)

웹뷰

앱에서 웹페이지를 보여주는 뷰

  • 앱의 인터넷 사용 권한 추가
    : net::ERR_CACHE_MISS오류 --> Manifest파일 수정
    : net::ERR_ACCESS_DENIED오류 --> 앱 uninstall후 다시 설치

앱 배포 유의사항

[Package name]

  • 중복 X
  • 소문자만 가능
  • com.중복어려운이름.프로젝트 이름

앱 아이콘 변경

app > res > mipmap
ic_launcher , ic_launcher_round 삭제

  • 앱아이콘으로 사용하고 싶은 이미지 추가
  • 이름을 ic_launcher.png로 변경, ic_launcher_round도 적용시켜주어야 함.

앱 배포하기

  • APK 파일 생성하기
profile
코딩일지..

0개의 댓글