본문 바로가기

개발 관련 기타/ML

[ML][React] 나는 솔로 테스트 - 출연하면 나의 이름은? AI 모델 teachable machine (카카오톡 공유 개선, 화면 개선) - Part 4

진행 과정

 

1. 카카오톡 공유 개선

1-1. 공유 이미지 클릭 시 결과 이미지 확대해서 보여주기

1-2. 앱 제목 변경

1-3. 공유 버튼으로 자세히 보기랑 나도 해보기 넣기

 

2. 화면 개선

2-1. 제목 색상 변경

2-2. 공유 버튼 위치 변경

2-3. 설명 색상 변경

2-4. 로딩 동그라미 여백

2-5. 업로드 버튼 색상

2-6. 컬러 테마 설정

 

1. 카카오톡 공유 개선

1-1. 공유 이미지 클릭 시 결과 이미지 확대해서 보여주기

 

방법:

- 공유 메시지 내 접속 URL에 이미지 URL을 get paramter로 추가

// ...
            .then(function(response) {

              var prob = Math.round(props.result[0]["probability"] * 100).toString()
              var title = '당신은 ' + prob + '% ' + props.result[0]["className"] + ' 입니다'

              var imgUrl =  response.infos.original.url
              var webUrl = 'https://harang90.github.io?img=' + imgUrl

              console.log(webUrl)

              kakao.Share.sendDefault({
                objectType: 'feed',
                content: {
                  title: title,
                  imageUrl:
                    imgUrl,
                  link: {
                    mobileWebUrl: webUrl,
                    webUrl: webUrl,
                  },
                },
              });
              
// ...

- get paramter로 이미지 URL이 있으면 결과 박스에 해당 이미지 보여줌

// 초기화 시 imgUrl 가져옴

function App() {

  let query = new URLSearchParams(useLocation().search);
  let imgUrl = query.get("img");

  var isImg;
  if (imgUrl) isImg = true;
  else isImg = false;

  const [hidden, setHidden]  = useState(isImg);
  
 // imgUrl 유무 여부에 따라 달라짐
  
  {hidden && imgUrl && (
    <MyImgBox imgUrl={imgUrl} />
  )}

 

1-2. 앱 제목 변경

 

방법:

- https://developers.kakao.com/console/app 에서 변경

 

1-3. 공유 버튼으로 자세히 보기랑 나도 해보기 넣기

 

방법:

- 카카오톡 공유 메시지에 button 추가

kakao.Share.sendDefault({
  objectType: 'feed',
  content: {
    title: title,
    imageUrl:
      imgUrl,
    link: {
      mobileWebUrl: webUrl,
      webUrl: webUrl,
    },
  },
  buttons: [
    {
      title: '자세히 보기',
      link: {
        mobileWebUrl: webUrl,
        webUrl: webUrl,
      },
    },
    {
      title: '나도 해보기',
      link: {
        mobileWebUrl: 'https://harang90.github.io/',
        webUrl: 'https://harang90.github.io/',
      },
    },
  ],
});

2. 화면 개선

2-1. 제목 색상 변경

- 참고 사이트: poomang.com

- 나는 솔로 이미지 참고

 

타이틀:

타이틀 이미지

관련 코드:

const Title = () => {
  return (
    <Box
      sx={{
        backgroundColor: 'pink',
        maxWidth: '100px',
        margin: '0 auto',
      }}
    >
      <Typography 
        variant="h3"
        color="white"
        align="center"
        m={1}
        pt={2}
        sx={{
          fontFamily: 'Black Han Sans'
        }}
      >
        나는
      </Typography>
      <Typography 
        variant="h3"
        color="red"
        align="center"
        m={1} mt={0}
        sx={{
          fontFamily: 'Black Han Sans'
        }}
      >
        솔로
      </Typography>
      <Box
        sx={{
          backgroundColor: 'white'
        }}
      >
        <Typography 
          variant="h4"
          color="secondary"
          align="center"
          m={1}
          sx={{
            fontFamily: 'Black Han Sans'
          }}
        >
          TEST
        </Typography>
      </Box>
    </Box>
  );
};

2-2. 공유 버튼 위치 변경

 

관련코드:

const ShareButton = (props) => {
  
  //...

  return (
    <Box component="button" onClick={shareKakao}
      sx={{
        width: 300,
        margin: '0 auto',
        border: 'none',
        display: 'flex',
        justifyContent: 'center',
        backgroundColor: 'transparent',
        '&:hover': {
          backgroundColor: 'primary.light',
          opacity: [0.9, 0.9, 0.9],
        },
      }}
    >
      <img src="https://developers.kakao.com/assets/img/about/logos/kakaotalksharing/kakaotalk_sharing_btn_small.png" alt="카카오톡 공유 보내기 버튼" /> 
    </Box>
  );
}

 

2-3. 설명 색상 변경

 

관련코드:

  const MyDescription = (props) => {
    return (
      <Typography 
        variant="h7"
        color="secondary"
        align="center"
        sx={{ display: 'block' }}
        m={0.5}
      >
        {props.description}
      </Typography>
    );
  };

 

2-4. 로딩 동그라미 여백

 

관련코드:

<Stack m={1} sx={{ alignItems: 'center'}}>                                                                                                                                                                           
  <CircularProgress />                                                                                                                                                                                               
</Stack>

 

2-5. 업로드 버튼 색상

 

관련코드:

<Button variant="outlined" onClick={handleButtonClick}                                                                                                                                                               
  sx={{                                                                                                                                                                                                              
    border: '1px solid purple',                                                                                                                                                                                      
    backgroundColor: purple,                                                                                                                                                                                         
    width: '100%',                                                                                                                                                                                                   
    height: '100%',                                                                                                                                                                                                  
    display: 'block',                                                                                                                                                                                                
  }}                                                                                                                                                                                                                 
>                                                                                                                                                                                                                    
  <Typography color="secondary" component="div">                                                                                                                                                                     
    <PermMediaIcon sx={{ mr:1 }} />                                                                                                                                                                                  
  </Typography>                                                                                                                                                                                                      
  <Typography component="div" color="secondary">사진을 올려주세요</Typography>                                                                                                                                       
</Button>

 

2-6. 컬러 테마 설정

 

관련코드:

const theme = createTheme({
  palette: {
    primary: purple,
    secondary: purple,
  },
});