본문 바로가기
개발일지

'Diff' 코드 비교하고 리뷰하며 계산앱(Kotlin) 만들기

by 앱또웹 2024. 11. 11.
728x90
반응형

 

 

드디어 .... 약 3일만에 나간 진도

감격 그 잡채 입니다

 

드디어 앱에 큰 변화가(?) 생겨 나고 있어요!

 

findViewByld() 함수

findViewByld() 함수를 활용해서 앱의 구동은 우선 성공!

하지만 ... 성능면에서 좋지 않다는 이야기가 있네요... 그럼 우리의 코딩 실력 향상을 위해 효율적 코드로 수정을 해볼까요?

onCreate() 함수에서 Activity 가 최초로 실행 될 때 '변수'로 바인딩해두고 해당 '변수'로만 접근하는것이 일반적이래요!

package com.example.kotlinsample;

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;

import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class BmiJavaActivity extends AppCompatActivity {
    // 불필요한 findViewById 함수를 피하기 위해 UI 요소를 멤버 변수로 가지고 있는다
    EditText tallField;
    EditText weightField;
    TextView resultLabel;
    Button bmiButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        UI로 사용할 레이아웃 XML 파일을 지정한다.
        setContentView(R.layout.layout_view_binding);

        // 요소 멤버변수를 XML 레이아웃에서 findViewById 함수를 이용해 바인딩한다.
        tallField = findViewById(R.id.tallField);
        weightField = findViewById(R.id.weightField);
        resultLabel = findViewById(R.id.resultLabel);
        bmiButton = findViewById(R.id.bmiButton);

        // bmiButton 이 클릭된 경우의 이벤트 리스너를 등록한다.
        bmiButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // tallField의 값을 읽어 온다.
                String tall = tallField.getText().toString();

                // weightField의 값을 읽어 온다.
                String weight = weightField.getText().toString();

                // BMI를 계산, 체중 / 키 * 키 >> 키를 cm로 입력 받았으니 100으로 나눔
                // Math.pow()는 넘겨받은 파라미터 값을 제곱해 돌려줌
                // ex) Math.pow(2, 3)은 2의 3제곱 8을 돌려줌
                double bmi = Double.parseDouble(weight) / Math.pow(Double.parseDouble(tall) / 100.0, 2);

                // 결과 bmi를 resultLabel에 보임
                resultLabel.setText("키: " + tall + ", 체중: " + weight + ", BMI + " + bmi);
            }
        });
    }
}

 

그전 코드랑 뭐가 봐뀐지 ... 시각화가 필요한 시점입니다 ...

매번 계속 지우고 쓰고 할 수도 없고!

 

그래서 제가 추천 드릴 사이트가 하나 있죠?

 

코드 리뷰 및 비교 사이트 추천

https://www.diffchecker.com/

 

Diffchecker - Compare text online to find the difference between two text files

Diffchecker will compare text to find the difference between two text files. Just paste your files and click Find Difference!

www.diffchecker.com

 

구글에 검색 'Diff' 하면 바로 나오는데요? 뭔가 영어단어가 하나 생각나는듯한 작명으로 쉽게 암기되는 단어로

한달 이상 코딩 안하다가 ... 코드리뷰... 하다가 보면 갑자기 퍼뜩 생각나는데요?

(저만 그런거 아니죠? 월 1회 코딩 ..)

 

그 이전 코드와 변경 코드를 ... 작성... 뭐 ... 복붙.. 알죠?

보시는 이미지처럼 서로 다른 코드를 줄별로 보기 편하게 시각화 해줘서 간편하고

가장 좋은점은 별도 로그인이 필요하지 않다는 점 입니다!

 

로그인하면 뭔가 새로운 기능들이 있을것 같지만 ...

아직 초보 개발자는 guest 기능만으로도 충분 합니다만?

 

728x90
반응형