3. [스벨트킷모바일앱개발] 아이오닉 사용해서 앱 UI만들기

Computer 관심/Svelte|2023. 6. 7. 20:55
반응형

routes폴더에 들어가 +layout을 들어가보면

import 'ionic-svelte/components/all';

ionic의 모든 컴포넌트를 가져오는 걸 볼 수 있다. 이렇게 레이아웃에 컴포넌트를 불러오는 것이 있기 때문에 페이지에서 컴포넌트를 사용할 때 import를 따로 하지 않고 컴포넌트를 사용할 수 있다.

 

 

1. 일단 아래의 사이트를 들어간다. ionic의 컴포넌트 다큐먼트페이지다.

 

https://ionicframework.com/docs/components

 

UI Components | Ionic Documentation

UI Components | User Interface Application Building Components

ionicframework.com

 

여기를 들어가서 사용할 컴포넌트의 자바스크립트 코드를 복사한 뒤 붙여넣기 한다.

 

 

그러면 아래 스크린샷 처럼 쉽게 UI를 만들 수 있다. 

 

 

댓글()

2. [스벨트킷모바일앱개발] 안드로이드 사인된 apk 만들기

Computer 관심/Svelte|2023. 5. 22. 23:14
반응형

이전편 

1. [스벨트킷모바일앱개발] capacitor Ionic SvelteKit 실행해보기

 

 

스벨트아이오닉을 사용하여 capacitor로 모바일 앱을 만드는 방법인데

기존에 플러터나 안드로이드 앱을 만들어 봤다면 과정은 다를게 없기 때문에 어렵지 않다.

 

 

1. 커멘드에서 키스토어 생성

 

keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

 

 

2. android/ 폴더에 key.properties 파일을 생성

storePassword=<키생성시 입력한 암호>
keyPassword=<키생성시 입력한 암호>
keyAlias=key
storeFile=<키파일의 경로와 파일명> 파일경로가 \\를 사용해야함

 

 

3. android/app/build.gradle

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}


apply plugin: 'com.android.application'

android { ...

 

 

4. android/app/build.gradle

android {
    // start of signingConfigs
    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }
    // end of signingConfigs
    compileSdkVersion rootProject.ext.compileSdkVersion
    ...
     buildTypes {
        release {
        	// start of 코드난독화 및 사이즈 축소
            minifyEnabled true
            useProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            
            // release 속성으로 변경
            signingConfig signingConfigs.release
        }
    }

 

 

5. 스벨트 엡을 빌드하고 

npm build

 

 

6. build된 앱가 capacitor를 싱크를 시킴 

npx cap sync

※ 이를 하지 않을경우 gradlew실행시 새로 빌드된 앱이 apk로 바뀌지 않음. 위 명령어를 실행하지 않고 apk를 빌드한 뒤 수정된게 반영되지 않아서 당황했다.

 

 

7. apk나 appbundle을 생성

안드로이드 폴더에 들어가서

//apk

gradlew assembleRelease

//or appbundle

gradlew bundleRelease

※ gradlew clean 를 사용하면 gradlew로 만든 apk를 지울 수 있으니 실패시 사용.

 

 

생성된 apk 경로는 아래와 같다.

 

android/app/build/outputs/apk/release/app-release.apk

 

번들 경로

http://android/app/build/outputs/bundle/

 

---------- 추가 ----------

 

앱을 수정시 버전을 업데이트 해야한다.

 

ex)

\android\app\build.gradle

versionCode 2
versionName "1.0.1"

 

config.json

version

 

 

참조

https://devdactic.com/ionic-in-app-purchase-capacitor

 

댓글()

1. [스벨트킷모바일앱개발] capacitor Ionic SvelteKit 실행해보기

Computer 관심/Svelte|2023. 4. 23. 18:58
반응형

2. [스벨트킷모바일앱개발] 사인된 apk 만들기

 

 

 

이전에 스벨트에 capacitor를 설치하여 모바일 앱을 만들때는 설정해야 할 것들이 좀 있어서 귀찮았다.

https://infocentre.tistory.com/147

 

하지만 ionic-svelte 프로젝트를 사용하면 이미 설정이 되어있어서 편하다.

 

 

아이오닉 스벨트 설치부터 안드로이드 폰에 APK설치 해보기

 

1. 설치하기 

 npm create ionic-svelte-app@latest 프로젝트이름

위처럼 아이오닉스벨트를 설치하면 수동으로 세팅해야 할 것들이 이미 설정이 되있어서 좋음. 만약 기존 프로젝트에 추가하려면 아래의 깃 문서의 설치 방법을 따라야함.

 https://github.com/Tommertom/svelte-ionic-app

 

 

2. 설치할 패키지고르기 

안드로이드로 실행해보기

 

3. 안드로이드 플랫폼 설치 및 추가

  (3-1)안드로이드 플랫폼 설치

npm i @capacitor/android

  (3-2)안드로이드 플랫폼 추가

npx cap add android

 

4. 빌드하기 

npm run build

 

5. 안드로이드 폰에 설치하기

npx cap run android

 

ios는 위의 명령어들을 android를 ios로 대체함

 

 

 

------------------------------

 

위 처럼 하는 방법은 빌드가 된것을 폰에 옮길때 사용하는 방법이다. 하지만 개발할때는 실시간으로 코드가 변경함에 따라, 화면도 바뀌는 것을 볼 수 있어야 한다.  이를 '라이브리로드' 라고 한다.  (플러터에서는 Hot reload)

 

 

라이브리로드 사용하기 (개발모드)

 

1. 개발모드로 클라이언트 서버키기 

npm run dev -- --host

2. (-hmr:hot module replacement 플래그를 추하가여) 안드로이드로 폰에 설치하기

 

npx cap run adroid -hmr

: 아래의 코드를 보듯이 -hmr이 있으면 url값과 cleartext값을 전달함으로서 앱화면을 url주소와 연결 시킴

 

import { CapacitorConfig } from '@capacitor/cli';

const appId = 'ionic-sveltekit-ssr-demo.ionic.io'; // 이것에 따라 빌드될때 안드로이드 앱아이디 생성
const appName = 'ionic-sveltekit-ssr-demo';
const server = process.argv.includes('-hmr') ? {
  'url': 'http://192.168.5.67:5173',   // always have http:// in url
  'cleartext': true
} : {};
const webDir = 'build';

const config: CapacitorConfig = {
  appId,
  appName,
  webDir,
  server
};

if (process.argv.includes('-hmr')) console.log('WARNING: running capacitor with livereload config', config);

export default config;

※만약 안된다면 위와 코드중 'url': http:// ... " 부분이 개발모드 클라이언트 로컬아이피 주소랑 같은지 확인한다.

 

좌:스벨트킷서버가 켜 있을때 / 우: 스벨트킷서버가 꺼지면

 

 

 

참조

https://ionic.io/blog/pwas-using-sveltekit-and-ionic

 

Blazing fast PWAs with SEO power using SvelteKit and Ionic - Ionic Blog

Learn how to utilize SvelteKit and Ionic’s UI components to deliver blazing-fast web apps that support SEO out of the box.

ionic.io

 

댓글()

[빙챗 사용기] 챗지피티(Chat GPT)와 빙챗(Bing Chat)비교 #뉴빙

기타|2023. 2. 25. 13:33
반응형

작년말 부터 챗지피티(chat gpt)가 엄청난 인기를 끌고 있다. 해외 물품 판매를 위한 쇼피파이 웹사이트를 제작하면서 Chat GPT에 위력을 체감 하였다.

마이크로소프트의 빙이 채팅 기능을 출시한다 하여 빠르게 웨이팅 리스트에 이름을 올렸다.

그리고  어제 아침 아래의 이메일을 받았다.

(이렇게 빨리 받을 수 있을거라 생각하지 못했다.)

 

(코드 생성은 플러터와 스벨트를 실험해봤다.)

 

이제 CHAT GPT와 Bing Chat을 비교해보자!

 

1. 실시간 기능

- Chat gpt

가장 단순한 질문인 한국의 대통령이 누구냐는 것을 물어보았지만, Chat GPT의 정보는 2021년에 머물러 있다.

재미있게 즐겨보는 유튜버에 대해 물어보았다. 

 

- 빙챗

똑같이 한국대통령이 누구냐고 물어보았다. 아래 나오듯이 먼저 검색을 한뒤에 답변을 만들어준다.

 

이번에는 슈카월드에 대해서 물어봤다. 확실히 최신정보를 바탕으로 정보를 준다.

 

 

2. 광고 카피와 뉴스기사 만들기

- Chat GPT

20대 여성을 타깃으로한 핸드폰 보호케이스에 대한 광고 카피 3개를 만들어 달라고 하였다. 그리고 튼튼함, 독성이 없는 물질, 귀여운고양이 3마리 디자인을 특징으로 한다는 추가 정보를 주었다.

 

 

답변이 의도와 다르게 타깃 그룹을 카피 문구에 넣어서 카피 문구에 빼달라고 요청했다. 아래 처럼 영어 카피가 만들어 졌다. 아래의 답변을 바탕으로 쉽게 해외마케팅에 사용할 수 있다.

 

이번에는 뉴스기사를 만들어 달라고 해봤다.

 

 

-빙챗

과연 빙챗도 잘 할 수 있을까? 

 

아래 답변을 보니 꽤 괜찮다.

 

 

그럼 위를 바탕으로 신문기사를 만들어 달라고 해볼 것이다

 

놀라운건 온라인에서 찾은 팁을 통해서 생성을 했다는 것이다.

나름 괜찮게 적은거 같다. 심지어 영업담당자와 대표의 이름과 하는 말까지 지어내 준다.

 

 

3. 코딩

그럼 코딩도 할 수 있을까?

 

-Chat GPT

먼저 Chat GPT에 차례다.

아래 처럼 길게 길게 적어준다. 이 외에도 더 쭉쭉 길게 만들어주는데 생략한다.

 

 

 

-빙챗

다음은 빙 챗의 차례이다. 기대가 된다.

여기까지 이해했냐고 물어본다. ㄷㄷ

그래서 이해했다고 대답하였다.

또 빙 챗이 물어본다. 그리고 아래에 할 수 있는 답변들이 적혀 있다.

No, Please continue를 선택해본다.

 

마치 선생님이 가르쳐 주듯이  나누어서 코드를 설명해준다.

 이런식으로 계속해서 설명을 해준다. 이 정도로 자세하게 적어줄지는 몰랏다.  잘 되는지는 실행해보지 않았다.

챗 GPT도 엄청나지만 빙챗도 엄청난거 같다.

 

플러터로 간단한 코드를 만들어 달라고 했을땐 Chat GPT와 같이 예전 코드를 사용했으며, 실행을 하려면 수정이 필요했다.  

 

 

결론

GPT 만큼 빙챗도 좋다. 빙챗도 어떻게 묻느냐에 따라 다른 답변을 줌으로 Chat GPT처럼 잘 물어보고 요청하는게 중요한 것 같다.  UI는 개인적으로 chat gpt가 더 깔끔해서 마음에 든다.

앞으로 구글 bard가 나오게 되면 이 둘을 뛰어넘을 수 있을지 궁금하다. 

 

댓글()

[티스토리 스킨 개발] 티스토리 스킨에 메인배너 개발하기

Computer 관심/이것저것|2023. 2. 22. 23:06
반응형

블로그에 IT와 여행 수술 후기 등을 쓴지도 꽤 지났다. 그렇게 인기 있는 내용의 글을 적지는 않아서 그런지 많이는 방문 하지 않는다. 대략 사람들이 하루에 100명 가까이는 방문하는거 같다. 

 

 

1. 독일어 과외를 하는 친구가 독일어 배우는 학생을 찾는걸 도와달라고 부탁을 한적이 있는데 하나의 포스팅에 작성을 하다보니 많은 사람들이 보지 않았고 효율성이 없었다.  지금 사용하는 스킨에 공지사항을 올리는 기능이 있는가 봤지만 없었다.

 

2. 한국에 귀국한지 꽤 지났고 본격적으로 일을 찾으려 하는데, 생각보다 쉽지 않다. 꽤 많은 사람들이 내 블로그에 방문하는데 웹/앱 기획이나 개발로 일자리를 구하고 있다는 것을 알릴 수 있으면 어떨까 싶었다.

 

 

 

그래서 아래의 사진 처럼 보듯이 홍보 및 공지(빨간박스) 영역을 만들게 되었다.

원래 사용하던 스킨의 이름은 오딧세이다.

아래를 보듯 게시글을 보더라도 위에 홍보&공지 영역이 보여진다.

 

방법

위 처럼 하는데는 간단한 html, css코딩이 필요하다.  

 

1. Admin에 들어가 스킨변경을 누른다.

 

2. 아래 사진처럼 사용중인 스킨을 볼 수 있을 것이다. 자신이 바꿀 스킨을 다운로드를 한다.

 

3. 먼저 간단한 티스토리 스킨의 구성을 살펴보면 다음과 같다. 

index.xml, skin.html, style.css 

파일로 구성이 되있고 

XML파일을 열어보면 xml태그와 아래의 스킨편집의 구성이 동일하다는 것을 것을 알 수 있다. XML에 나는 기존에 없던 공지 및 홍보 영역을 추가 하였다.

 

위에 보듯이 공지 및 홍보 섹션엔 배너용 이미지와 홍보링크를 가지고 있다.

위는 아래의 코드를 추가했기 때문이다. 

 

variablegroup name= "공지 및 홍보" 는 섹션의 타이틀이 된다.

그 안에 두개의 variable을 넣은 것을 볼 수있는데 name은 html편집에서 티스토리 치환자에 사용될 변수의 이름이다.

타입은 아래 보듯 IMAGE와 STRING이 적혀있는데

 

1) IMAGE는 이미지를 업로드 할 수 있는 기능을 스킨 편집창에 나타낸다.

2) STRING은 위에 보듯 홍보링크에 input필드를 추가 시켰다.

이 외에도아래 보듯 select나 다른 타입도 있어 원하는 것을 추가 시키면 된다.

 

나는 메인배너로 쓸 이미지를 올리는 기능과 그것을 눌렀을때 이동하게 할 페이지를 넣을 수 있도록 텍스트 인풋을 추가했다.

 

그리고 스킨 등록을 통해 업로드를 시켜보면 우리가 xml에 추가한 것들이 스킨편집창 메뉴에 적용된 것을 볼 수 있다.

 

 

 

3. HTML편집하기

 

변수명 은 xml에 variable name이다.

 

<s_if_var_변수명>: 만약 변수가 있으면 <s_if_var_변수명></s_if_var_변수명>사이의 내용이 보여진다.

: 스킨편집창에 넣은값이 보여진다.

<s_not_var_변수명> 변수가 없으면 <s_not_var_변수명></s_not_var_변수명>그 사이 내용이 보여진다.

 

위에 코드를 보듯 container 안 area-main 위에 adAreaImg가 있으면  img 태그가 나타나게 했다.

widh="100%"를 넣어서 가로로 화면에 꽉차게 했다. 링크가 없으면 링크가 없는 배너를 보이게 했고, 링크가 없으면 링크가 없는 배너를 보이게 했다.

 

이렇게 하면 배너는 나타나는데 쓴 글을 볼때 문제가 발생한다. 이 문제는 간단하게 html에 article-header를 찾아서 업에버렸다.

 

그러면 아래사진 처럼 빈공간이 생겨버리는 문제가 발생하는데

 

 

 

#tt-body-page .main에 padding-top: 470px이 있어서 그렇다.

 

이걸 css에 들어가서 지워주면 된다.

댓글()

[무역]해외에서 물품 소싱할때 잊지말고 메모할 것들

기타|2023. 2. 22. 17:01
반응형

소싱에서 판매자와 협의 기간이 길어지면 헷갈리는 경우가 많다. 아래의 사항을 나누어서 새로운 정보가 나올때 마다 적어 놓으면 덜 헷갈릴 수 있다.

 

제품: 제품  디테일이다.  

- 사이즈

- 두께

- 제질

 

가격: 같은 제품이라도 수량/재질 등에 따라 가격이 다를 수 있다. 또 어떤 시기에 따라서 이전에 받은 견적보다 비싸지는 경우가 있다

 

쉬핑날짜: 생산에 따라, 협의가 길어짐에 따라 쉬핑날짜가 딜레이가 될 수 있으므로 잊지 말고 물어보는게 좋다.

 

쉬핑비용: DDP방식 처럼 수출자가 제품을 배송을 책임지는 경우에 쉬핑 비용역시 물어봐야한다. 그렇지 않으면 포워딩업체에 물어본 뒤 기재

 

기타서비스: 라벨부착, 포장, 검수비 등등

 

 

 

 

댓글()

[ga4] non-standard event parameters(gtag prameter). Only possible to check from real time overview.

Computer 관심/이것저것|2023. 2. 3. 11:21
반응형

https://support.google.com/analytics/answer/10075209?hl=en

 

gtag로  받은 데이타가 모이지 않고 실시간으로만 보여질때는 custom dimension으로 등록을 해한다. 그래야만 데이타가 쌓인다.

 

This is the solution for problem that the data recived from gtag is not stored but only show in real time data. 

 

댓글()

Theme app extensions

Computer 관심/쇼피파이|2023. 1. 9. 09:59
반응형

https://www.shopify.com/partners/blog/theme-app-extensions

댓글()