Ionic App 수정( UI 수정 )

2023. 3. 15. 15:30개발/Ionic framework

기존에 제작한 어플을 조금 수정했다.

Wifi, 확인 버튼의 위치를 임시 테스트용으로 잡아서

화면이 작거나 큰 스마트폰은

버튼이 잘리거나 밀리는 현상이 발생했다.

 

html을 많이 만져본 적 없어서

처음 만들었을 때 모르고 제작했었다.

<table>
 <tr>
    <th>
    <button class="wifiButton" (click)="presentAlert()"><ion-icon name="wifi-outline"></ion-icon>Wifi</button>
    </th>
    <th>
    <button class="wifiButton" (click)="presentAlert()"><ion-icon name="wifi-outline"></ion-icon>Wifi</button>
    </th>
 </tr>

처음엔 이렇게 표 형식을 사용해서 2개의 버튼을 생성했었다.

왜 table 태그를 사용했나요? 하면 할 말 이 없을 정도로

이유없이 일단 table로 만들었다.

  .wifiButton {
      display: inline-block;
      font-size: 15px;
      font-weight: bold;
      cursor: pointer;
      text-align: auto;
      text-decoration: none;
      outline: none;
      color: rgb(0, 0, 0);
      background-color: #ffa500;
      border: none;
      border-radius: 5px;
      box-shadow: 0 0px #999;
      width: 75px;
      height: 22PX;
      margin-right : 5px;
    }
    .wifiButton:active {
      background-color: #ffa600d4;
      box-shadow: 0 0px #666;
      transform: translateY(1px);
    }

css는 다음과 같다.

wifiButton:active 는 눌렸을 때 애니메이션이다.

 

버튼의 밀림/잘림을 수정하기 위해

구글링으로 자료조사를 했다.

chatGPT 굳

text-align : center; 를 추가했다.

  <div class="testButton">
    <button class="wifiButton" (click)="presentAlert()"><ion-icon name="wifi-outline"></ion-icon>Wifi</button>
    <button class="wifiButton" (click)="presentAlert2()"><ion-icon name="wifi-outline"></ion-icon>확인</button>
  </div>

table 태그에서 div 태그로 변경한 뒤

class를 지정했다. testButton class를 지정한 뒤

.testButton {
	text-align: center;
}

위와 같이 text-align 요소를 추가했다.

중앙에 잘 자리잡았다.

버튼도 정상적으로 잘 동작한다.


<!DOCTYPE html>
<html>
<ion-header [translucent]="true">
  <ion-toolbar>
    <ion-title>
      도움말
    </ion-title>
  </ion-toolbar>
</ion-header>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta charset="UTF-8" />
</head>
<a><br>라이트토크(주)에서 제작한 기기들을 앱을 통해 쉽게 제어합니다.</a>

<br><br><br>
<a class="connectGuide"> 기기 등록 방법</a>

<a><br><br><br>1. <strong>'블루투스'</strong>탭에서 Wifi 버튼을 눌러 사용할 Wifi 정보를 입력해주세요.</a>
<a><br><br>2. <strong>'확인'</strong> 버튼을 통해 입력된 값을 확인할 수 있습니다.</a>
<a><br><br>3. <strong>'Scan'</strong> 버튼을 누르면 주변 BLE 장치들을 검색합니다.</a>
<a><br><br>4. LightTalk 이름을 가진 장치가 식별되면 <strong>'Connect'</strong> 버튼을 눌러주세요.</a>
<a><br><br>5. 잠시 후 장치가 자동으로 연결됩니다.</a>

</html>

도움말 탭도 수정한 뒤 마무리


! 처음 알게된 사실

ionic serve --lab

프로젝트 디렉토리 cmd 창을 열고

해당 명령어를 실행하면

[ng] - Generating browser application bundles (phase: setup)...
[ng] √ Browser application bundle generation complete.
[ng] Initial Chunk Files                                                                                     | Names                     |  Raw Size
[ng] vendor.js                                                                                               | vendor                    |   3.86 MB |
[ng] polyfills.js                                                                                            | polyfills                 | 353.71 kB |
[ng] styles.css, styles.js                                                                                   | styles                    | 248.48 kB |
[ng] main.js                                                                                                 | main                      |  14.84 kB |
[ng] runtime.js                                                                                              | runtime                   |  14.11 kB |
[ng]
[ng]                                                                                                         | Initial Total             |   4.47 MB
[ng]
[ng] Lazy Chunk Files                                                                                        | Names                     |  Raw Size
[ng] node_modules_ionic_core_dist_esm_swiper_bundle-28080340_js.js                                           | swiper-bundle-28080340-js | 199.26 kB |
[ng] polyfills-core-js.js                                                                                    | polyfills-core-js         | 152.87 kB |
[ng] node_modules_ionic_core_dist_esm_ion-datetime_3_entry_js.js                                             | -                         | 134.48 kB |
[ng] node_modules_ionic_core_dist_esm_ion-item_8_entry_js.js                                                 | -                         | 100.08 kB |
[ng] node_modules_ionic_core_dist_esm_ion-modal_entry_js.js                                                  | -                         |  82.98 kB |
[ng] node_modules_ionic_core_dist_esm_ion-app_8_entry_js.js                                                  | -                         |  82.54 kB |
[ng] node_modules_ionic_core_dist_esm_ion-popover_entry_js.js                                                | -                         |  61.66 kB |
[ng] node_modules_ionic_core_dist_esm_ion-slide_2_entry_js.js                                                | -                         |  60.09 kB |
[ng] node_modules_ionic_core_dist_esm_ion-refresher_2_entry_js.js                                            | -                         |  54.52 kB |
[ng] default-node_modules_ionic_core_dist_esm_parse-decd0f85_js-node_modules_ionic_core_dist_esm_t-a92c48.js | -                         |  51.85 kB |
[ng] node_modules_ionic_core_dist_esm_ion-alert_entry_js.js                                                  | -                         |  51.77 kB |
[ng] common.js                                                                                               | common                    |  50.08 kB |
[ng] node_modules_ionic_core_dist_esm_ion-segment_2_entry_js.js                                              | -                         |  43.16 kB |
[ng] node_modules_ionic_core_dist_esm_ion-menu_3_entry_js.js                                                 | -                         |  41.52 kB |
[ng] node_modules_ionic_core_dist_esm_ion-button_2_entry_js.js                                               | -                         |  39.57 kB |
[ng] node_modules_ionic_core_dist_esm_ion-item-option_3_entry_js.js                                          | -                         |  38.93 kB |
[ng] node_modules_ionic_core_dist_esm_ion-range_entry_js.js                                                  | -                         |  37.73 kB |
[ng] node_modules_ionic_core_dist_esm_ion-searchbar_entry_js.js                                              | -                         |  36.74 kB |
[ng] node_modules_ionic_core_dist_esm_ion-nav_2_entry_js.js                                                  | -                         |  36.11 kB |
[ng] node_modules_ionic_core_dist_esm_ion-route_4_entry_js.js                                                | -                         |  35.25 kB |
[ng] node_modules_ionic_core_dist_esm_ion-select_3_entry_js.js                                               | -                         |  34.27 kB |
[ng] node_modules_ionic_core_dist_esm_ion-action-sheet_entry_js.js                                           | -                         |  33.12 kB |
[ng] node_modules_ionic_core_dist_esm_ion-fab_3_entry_js.js                                                  | -                         |  30.17 kB |
[ng] node_modules_ionic_core_dist_esm_ion-accordion_2_entry_js.js                                            | -                         |  27.55 kB |
[ng] polyfills-dom.js                                                                                        | polyfills-dom             |  26.82 kB |
[ng] node_modules_ionic_core_dist_esm_ion-tab-bar_2_entry_js.js                                              | -                         |  26.51 kB |
[ng] node_modules_ionic_core_dist_esm_ion-toast_entry_js.js                                                  | -                         |  26.09 kB |
[ng] node_modules_ionic_core_dist_esm_ion-input_entry_js.js                                                  | -                         |  25.27 kB |
[ng] node_modules_ionic_core_dist_esm_ion-breadcrumb_2_entry_js.js                                           | -                         |  25.19 kB |
[ng] node_modules_ionic_core_dist_esm_ion-progress-bar_entry_js.js                                           | -                         |  24.55 kB |
[ng] node_modules_ionic_core_dist_esm_ion-toggle_entry_js.js                                                 | -                         |  22.82 kB |
[ng] node_modules_ionic_core_dist_esm_ion-textarea_entry_js.js                                               | -                         |  22.61 kB |
[ng] node_modules_ionic_core_dist_esm_ion-picker-internal_entry_js.js                                        | -                         |  22.37 kB |
[ng] node_modules_ionic_core_dist_esm_ion-picker-column-internal_entry_js.js                                 | -                         |  20.69 kB |
[ng] node_modules_ionic_core_dist_esm_ion-back-button_entry_js.js                                            | -                         |  19.65 kB |
[ng] node_modules_ionic_core_dist_esm_ion-virtual-scroll_entry_js.js                                         | -                         |  19.42 kB |
[ng] node_modules_ionic_core_dist_esm_ion-radio_2_entry_js.js                                                | -                         |  19.33 kB |
[ng] node_modules_ionic_core_dist_esm_ion-datetime-button_entry_js.js                                        | -                         |  19.20 kB |
[ng] node_modules_ionic_core_dist_esm_ion-card_5_entry_js.js                                                 | -                         |  18.05 kB |
[ng] node_modules_ionic_core_dist_esm_ion-loading_entry_js.js                                                | -                         |  17.76 kB |
[ng] node_modules_ionic_core_dist_esm_input-shims-b3771013_js.js                                             | input-shims-b3771013-js   |  17.57 kB |
[ng] src_app_tab2_tab2_module_ts.js                                                                          | tab2-tab2-module          |  16.91 kB |
[ng] node_modules_ionic_core_dist_esm_ion-infinite-scroll_2_entry_js.js                                      | -                         |  15.96 kB |
[ng] node_modules_ionic_core_dist_esm_ion-col_3_entry_js.js                                                  | -                         |  15.72 kB |
[ng] node_modules_ionic_core_dist_esm_ion-reorder_2_entry_js.js                                              | -                         |  15.25 kB |
[ng] node_modules_ionic_core_dist_esm_ion-checkbox_entry_js.js                                               | -                         |  14.11 kB |
[ng] node_modules_ionic_core_dist_esm_ion-spinner_entry_js.js                                                | -                         |  10.68 kB |
[ng] node_modules_ionic_core_dist_esm_ion-split-pane_entry_js.js                                             | -                         |  10.11 kB |
[ng] node_modules_ionic_core_dist_esm_ion-tab_2_entry_js.js                                                  | -                         |   9.72 kB |
[ng] node_modules_ionic_core_dist_esm_ion-chip_entry_js.js                                                   | -                         |   8.48 kB |
[ng] node_modules_ionic_core_dist_esm_ion-avatar_3_entry_js.js                                               | -                         |   8.23 kB |
[ng] src_app_tab3_tab3_module_ts.js                                                                          | tab3-tab3-module          |   8.04 kB |
[ng] src_app_tabs_tabs_module_ts.js                                                                          | tabs-tabs-module          |   7.09 kB |
[ng] src_app_tab1_tab1_module_ts.js                                                                          | tab1-tab1-module          |   6.84 kB |
[ng] node_modules_ionic_core_dist_esm_ion-ripple-effect_entry_js.js                                          | -                         |   6.64 kB |
[ng] node_modules_ionic_core_dist_esm_index-dbdac533_js.js                                                   | index-dbdac533-js         |   6.25 kB |
[ng] node_modules_ionic_core_dist_esm_ion-img_entry_js.js                                                    | -                         |   4.54 kB |
[ng] node_modules_ionic_core_dist_esm_ion-text_entry_js.js                                                   | -                         |   4.15 kB |
[ng] node_modules_ionic_core_dist_esm_ion-backdrop_entry_js.js                                               | -                         |   3.49 kB |
[ng] node_modules_ionic_core_dist_esm_status-tap-2f3f665e_js.js                                              | status-tap-2f3f665e-js    |   2.89 kB |
[ng]
[ng] Build at: 2023-03-15T06:32:15.173Z - Hash: 7755dc91c93cc7ee - Time: 9280ms
[ng] √ Compiled successfully.
> ionic-lab.cmd http://localhost:8100 --host localhost --port 8200 --project-type angular --app-name AWSversion --app-version 0.0.1

[INFO] Development server running!

       Lab: http://localhost:8200
       Local: http://localhost:8100

       Use Ctrl+C to quit this process

[INFO] Browser window opened to http://localhost:8200!

위와 같이 localhost 가 부여되고

웹 사이트에서 소스 적용 확인이 가능하다

이전에는 VS code에서 소스 수정 후

Android Studio 에서 일일이 Build를 해줬는데

 

그럴 필요 없이

VS code 에서 수정 후 저장만 하면

자동으로 연동되어 수정된다.

 

편리한 기능이 있었는데

그동안 힘들게 했었네