Skip to content

timlyeee/YGO_card_manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YGO_Card_Manager

依赖环境

  • Android SDK
  • Java Development Kit (JDK) 17
  • NodeJS v20+
  • Expo v50
  • VSCode + Expo Utils(VS插件)

安装步骤

本项目基于Expo app构建,本质是基于ReactNative的再扩展,所以安装步骤和Expo app相同。快速验证的话,按照下面的配置方式也可。

  1. 安装Node,version 20,以保证所有包都可以被正确安装。

  2. 安装Yarn,我们的大部分操作将基于Yarn完成。可以使用npm进行安装

    # 安装yarn
    npm install -g yarn
    # 通过Yarn安装环境所需包 
    yarn install
  3. 安装Android环境。可见Set up Android Studio's tools一文。

    • 安装Android studio
    • 安装Android SDK
    • 通过Android Studio安装模拟器,这样比较方便调试
  4. 将Android SDK的安装路径作为环境变量输出到系统变量中,如将以下代码写入/.zprofile~/.zshrc~/.bash_profile~/.bashrc。对于Windows,也可手动录入环境变量。

    export ANDROID_HOME=$HOME/Library/Android/sdk && export PATH=$PATH:$ANDROID_HOME/emulator && export PATH=$PATH:$ANDROID_HOME/platform-tools
  5. 安装OpenJDK,对于Expo app版本为49的本项目,需安装jdk11。可以通过chocolatay安装或手动安装。并设置JAVA_HOME的环境

    # On windows
    choco install -y microsoft-openjdk17
    # Powershell set enviroment
    [System.Environment]::SetEnvironmentVariable('JAVA_HOME','path/to/javahome')
    # On Macos
    brew install java17
    export JAVA_HOME=path/to/javahome
  6. 运行yarn android来快速运行项目在android中,如果上述步骤都正确,在这一步,你应该可以打开刚刚下载好的模拟器,并成功运行本项目。

在Windows环境中,使用Mumu,雷电模拟器等安卓模拟器

目前在网络环境受限,或者由于某些安卓设备限制,不能保证expo完全能够连接上Metro bundler服务器,但是mumu模拟器可以,所以建议使用以下方式连接mumu模拟器的ip端,并运行应用。

# connect to mumu ip address
adb connect 127.0.0.1:16384
# check devices
adb devices
# expected result
$: List of devices attached
$: 127.0.0.1:16384 device

这一类模拟器同样可以被连接到Android Studio中进行debug测试。

Mac暂时没有发现问题,可能是react native都是优越的Mac用户吧。

基于Expo App的运行

ExpoApp本质是一个现成的Java Script运行环境,它允许你直接在上面执行js脚本。当JS脚本发生变动时,也会实时的反馈到ExpoApp中。在不涉及到原生层的逻辑变更,以及自定义的Java/c++代码时,使用ExpoApp的运行环境绰绰有余。

运行方式有两种,都是在终端执行。需要ExpoCli的使用基础

npx expo start:android

基于原生模式执行

基于原生模式打包的逻辑,是不依赖ExpoApp进行运行,这样就可以避免反复建立服务器的情况。

npx expo run:android

打包

当需要完全打包成一个独立的App时,需要完整的打包的流程。这里会有两个打包模式可以选择,一个是基于Expo云端的打包,另一个是本地打包。两者都需要eas账号。此外,如果能在ExpoApp中完美运行,那么基于云端的打包一定是成功的。但是本地打包不一定,因为需要兼容各个安卓版本。

文档

本程序基于Expo执行,并且由于没有想要做的很大,纯粹为了小程序而生,所以并不会出现很复杂的UI和数据分离的MVC模型,而是把逻辑和UI绑定。除了一些必要的数据处理系统,必须存在与database中心,其余时间,都是UI模块各自运行。

数据库更新

目前的数据库更新按照手动更新的方式进行,需要在每次卡包出来之后,分别根据官网数据更新cid表,根据ygopro的数据更新卡片原始数据。理论上两个数据可以合在一起更新。相当于和ygopro的数据库分离开来。按照游戏王现在的更新频率,这个工作量不会很大。

卡包数据

直接从官网爬。

Q&A

  1. 打开模拟器时报错:The emulator process for AVD Pixel_4_API_30 has terminated.

    • 出现这个情况时,需要确认当前打开模拟器的log文件,通常路径在
      Users\AppData\Local\Google\AndroidStudio2021.2\log\idea.log
    • 通过阅读内部的信息即可了解。
  2. 为什么不做网页版

    • 因为想要零成本,如果做成网页版,可以缓存在本地数据中是最后,但是更多时候容易丢失。也可以接入dav,但是对于没有使用习惯的人而言就比较麻烦。。
  3. 安卓模拟器会报错无法找到服务器

    1. 目前Expo在模拟器的处理上有BUG,但也有可能是我本地运行环境的问题。之前在Mac上和家里电脑运行良好。
    2. 可以先使用mumu模拟器作为运行环境,它在电脑上被识别为Physical device,也许从而绕开了某些问题。

About

A YGO card manager statistic app

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published