https://github.com/robiveli/js-captcha

 

,

https://cordova.apache.org/docs/en/latest/guide/platforms/android/index.html

 

Android Platform Guide - Apache Cordova

Android Platform Guide This guide will assist you in setting up your development environment for building Cordova apps on Android devices. Additionally, it provides the option to incorporate Android-specific command-line tools into your development workflo

cordova.apache.org

 

안드로이드 플랫폼 프로그래밍에 대해 간략히 잘 나와있다. 제일 아래 부분 다음 내용 잘 참고.

 

,

,

수집하는 data 가 없고 analytics 를 위해 access 만 하는 app (Model Dermatology - Wiki ; https://apps.apple.com/app/id1553068524)
 
 

GitHub - chemerisuk/cordova-plugin-firebase-analytics: Cordova plugin for Firebase Analytics

Cordova plugin for Firebase Analytics. Contribute to chemerisuk/cordova-plugin-firebase-analytics development by creating an account on GitHub.

github.com

 

다음과 같이 privacy manifest 를 작성해서 appstore 에 통과하였다.
 
 
 
    <privacy-manifest>
      <key>NSPrivacyAccessedAPITypes</key>
      <array>
        <dict>
          <key>NSPrivacyAccessedAPIType</key>
          <string>NSPrivacyAccessedAPICategoryUserDefaults</string>
          <key>NSPrivacyAccessedAPITypeReasons</key>
          <array>
            <string>CA92.1</string>
          </array>
        </dict>
      </array>
      <key>NSPrivacyCollectedDataTypes</key>
      <array>
        <dict>
          <key>NSPrivacyCollectedDataType</key>
          <string>NSPrivacyCollectedDataTypeUserID</string>
          <key>NSPrivacyCollectedDataTypeLinked</key>
          <true/>
          <key>NSPrivacyCollectedDataTypePurposes</key>
          <array>
            <string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
          </array>
          <key>NSPrivacyCollectedDataTypeTracking</key>
          <false/>
        </dict>
        <dict>
          <key>NSPrivacyCollectedDataType</key>
          <string>NSPrivacyCollectedDataTypeDeviceID</string>
          <key>NSPrivacyCollectedDataTypeLinked</key>
          <true/>
          <key>NSPrivacyCollectedDataTypePurposes</key>
          <array>
            <string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
          </array>
          <key>NSPrivacyCollectedDataTypeTracking</key>
          <true/>
        </dict>
        <dict>
          <key>NSPrivacyCollectedDataType</key>
          <string>NSPrivacyCollectedDataTypeCoarseLocation</string>
          <key>NSPrivacyCollectedDataTypeLinked</key>
          <true/>
          <key>NSPrivacyCollectedDataTypePurposes</key>
          <array>
            <string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
          </array>
          <key>NSPrivacyCollectedDataTypeTracking</key>
          <false/>
        </dict>
        <dict>
          <key>NSPrivacyCollectedDataType</key>
          <string>NSPrivacyCollectedDataTypeProductInteraction</string>
          <key>NSPrivacyCollectedDataTypeLinked</key>
          <true/>
          <key>NSPrivacyCollectedDataTypePurposes</key>
          <array>
            <string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
          </array>
          <key>NSPrivacyCollectedDataTypeTracking</key>
          <false/>
        </dict>
        <dict>
          <key>NSPrivacyCollectedDataType</key>
          <string>NSPrivacyCollectedDataTypePerformanceData</string>
          <key>NSPrivacyCollectedDataTypeLinked</key>
          <true/>
          <key>NSPrivacyCollectedDataTypePurposes</key>
          <array>
            <string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
          </array>
          <key>NSPrivacyCollectedDataTypeTracking</key>
          <false/>
        </dict>
        <dict>
          <key>NSPrivacyCollectedDataType</key>
          <string>NSPrivacyCollectedDataTypeOtherDiagnosticData</string>
          <key>NSPrivacyCollectedDataTypeLinked</key>
          <true/>
          <key>NSPrivacyCollectedDataTypePurposes</key>
          <array>
            <string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
          </array>
          <key>NSPrivacyCollectedDataTypeTracking</key>
          <false/>
        </dict>
        <dict>
          <key>NSPrivacyCollectedDataType</key>
          <string>NSPrivacyCollectedDataTypeOtherDataTypes</string>
          <key>NSPrivacyCollectedDataTypeLinked</key>
          <true/>
          <key>NSPrivacyCollectedDataTypePurposes</key>
          <array>
            <string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
          </array>
          <key>NSPrivacyCollectedDataTypeTracking</key>
          <false/>
        </dict>
      </array>
      <key>NSPrivacyTracking</key>
      <false/>
      <key>NSPrivacyTrackingDomains</key>
      <array/>
    </privacy-manifest>
 
,

src = "구형 기기를 위한 icon"

foreground & background = "adaptive icon fore & back"

아이콘 생성은 https://romannurik.github.io/AndroidAssetStudio/icons-launcher.html  를 이용하면 된다.

구형/신형 기기에서 잘 동작하는것 확인함.

 

    <icon density="ldpi" src="res/icons/android/ldpi.png"/>

    <icon density="mdpi" src="res/android/icon/mipmap-mdpi/ic_launcher.png" foreground="res/android/icon/mipmap-mdpi/ic_launcher_adaptive_fore.png"  background="res/android/icon/mipmap-mdpi/ic_launcher_adaptive_back.png" />
    <icon density="hdpi" src="res/android/icon/mipmap-hdpi/ic_launcher.png" foreground="res/android/icon/mipmap-hdpi/ic_launcher_adaptive_fore.png" background="res/android/icon/mipmap-hdpi/ic_launcher_adaptive_back.png"/>
    <icon density="xhdpi" src="res/android/icon/mipmap-xhdpi/ic_launcher.png" foreground="res/android/icon/mipmap-xhdpi/ic_launcher_adaptive_fore.png" background="res/android/icon/mipmap-xhdpi/ic_launcher_adaptive_back.png"/>
    <icon density="xxhdpi" src="res/android/icon/mipmap-xxhdpi/ic_launcher.png" foreground="res/android/icon/mipmap-xxhdpi/ic_launcher_adaptive_fore.png" background="res/android/icon/mipmap-xxhdpi/ic_launcher_adaptive_back.png"/>
    <icon density="xxxhdpi" src="res/android/icon/mipmap-xxxhdpi/ic_launcher.png" foreground="res/android/icon/mipmap-xxxhdpi/ic_launcher_adaptive_fore.png" background="res/android/icon/mipmap-xxxhdpi/ic_launcher_adaptive_back.png"/>
,

임시 파일 삭제 프로그램으로 매우 유용하다.

실행하면 바로 appdata 등에 있는 임시 파일이 삭제된다. 

 

Temp File Cleaner.exe
0.15MB

 

,

root 로 로그인 이후에

su -

 

이후

nano /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla

 

 

[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes
,

website/app 를 전세계에 배포할때, 해외에서 느린 부분에 대한 고민이 있다. 여러시행착오와 많은 비용을 들인 끝에 아래가 제일 낫다는 결론. 수십시간과 수백만원 쓰고 내린 결론인데 좀 더 미리 찾아보았으면 덜 고생했을듯.

html = AWS CloudFront
api = AWS API gateway (REST API)
proxy = AWS (5$) + VULTR (6$ intel high-frequency) 

ip = AWS router 53 (multi-value proxing)

 

비슷한 효과를 내려면 해외 30개에 proxy 를 깔아야 한다.

,

우측 아래에 나타나는 DUR 팝업을 5분에 한번씩 체크해서 닫아줍니다. close.zip 을 풀고 close.exe 를 실행하면 됩니다.

close.zip
0.53MB

 

실행하면 우측 아래 트레이 영역에 방패가 보입니다.

DUR 뿐 아니라 이것도 덤으로 닫아 줍니다.

 

시작프로그램으로 등록하고 싶다면,

(1) close.exe 를 우측 클릭해서 "바탕 화면에 바로 가기 만들기" 를 해서 "close.exe 바로가기"를 하나 만듭니다.

(2) <윈도우키> + R 을 누르면 실행창이 아래처럼 띄워집니다. "shell:startup" 을 타이핑해서 시작프로그램 폴더를 엽니다.

(3) "close.exe 바로가기" 를 시작프로그램 폴더에 카피하면 윈도우 시작시 같이 실행이 됩니다. 

 

Reference>

https://learn.microsoft.com/ko-kr/windows/win32/api/winuser/nf-winuser-getshellwindow?redirectedfrom=MSDN

https://learn.microsoft.com/ko-kr/windows/win32/api/winuser/nf-winuser-getdesktopwindow?redirectedfrom=MSDN

https://learn.microsoft.com/ko-kr/windows/win32/api/winuser/nf-winuser-findwindowexa?redirectedfrom=MSDN

,

https://retropie.org.uk/

 

RetroPie

Retro-gaming on the Raspberry Pi

retropie.org.uk

 

Rasberrypie 에 retro 게임을 설치해주는 ROM 들을 모아 놓은듯.

'컴퓨터 이야기~ > 소프트웨어' 카테고리의 다른 글

API / WEB 해외 배포  (0) 2024.01.28
DUR 자동으로 닫기  (0) 2024.01.25
AWS Polly  (0) 2023.12.09
odp -> jpg + txt  (0) 2023.12.09
ffmpeg 로 더빙넣기.  (0) 2023.12.08
,