stepstead-client/native/README.md
jts 6a1706051d İlk commit: Stepstead Godot istemci (4.6 Mobile)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 11:31:35 +03:00

88 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Stepstead — Pedometer Native Eklentiler
Adım sayar soyutlaması `autoload/pedometer.gd` içinde. Native plugin yoksa
otomatik **simülasyon** moduna düşer (editör/masaüstü test). Gerçek cihazda
adım okumak için aşağıdaki native eklentiler derlenip projeye eklenmeli.
GDScript ↔ native sözleşmesi (her iki platform aynı):
| Metot | Dönüş | Açıklama |
|---------------------|-------|--------------------------------------------|
| `is_available()` | bool | Cihazda adım sayar sensörü var mı |
| `start()` | void | Dinlemeyi başlat |
| `stop()` | void | Dinlemeyi durdur |
| `get_step_count()` | int | Açılıştan beri kümülatif adım |
Singleton adları: Android = `StepCounter`, iOS = `Pedometer`.
---
## Android (`stepcounter-android/`) — Mac'te derleme
**Gereksinim:** Mac + Android Studio (Android SDK API 34 + JDK 17) + Godot 4.6.
Gradle projesi hazır: `settings.gradle`, `build.gradle`, `gradle.properties`,
wrapper config (`gradle/wrapper/gradle-wrapper.properties` → Gradle 8.5).
Eksik tek şey wrapper binary'si ve godot-lib — aşağıda.
### 1. Android Build Template'i kur (godot-lib.aar için)
Godot editöründe projeyi aç → **Project > Install Android Build Template**.
Bu, proje köküne `android/build/` oluşturur. Godot kütüphanesini bul:
```bash
find android/build -iname "godot-lib*.aar"
# örn: android/build/libs/release/godot-lib.template_release.aar
```
Bu AAR'ı plugin libs/ içine kopyala:
```bash
mkdir -p native/stepcounter-android/libs
cp android/build/libs/release/godot-lib.*.aar native/stepcounter-android/libs/
```
### 2. SDK yolunu bildir
```bash
cd native/stepcounter-android
echo "sdk.dir=$HOME/Library/Android/sdk" > local.properties
```
### 3. Gradle wrapper'ı üret + derle
Android Studio'da klasörü açarsan wrapper'ı otomatik üretir. CLI ile:
```bash
# Homebrew gradle ile tek seferlik wrapper üret (sonra ./gradlew yeter)
brew install gradle # yoksa
gradle wrapper --gradle-version 8.5
./gradlew assembleRelease
```
### 4. AAR'ı projeye koy + etkinleştir
```bash
cp build/outputs/aar/stepcounter-release.aar \
../../addons/stepcounter/stepcounter-release.aar
```
Godot: **Project > Project Settings > Plugins > StepCounter = Enable**.
Android export'unda **Use Gradle Build**ık olmalı.
İzin: `ACTIVITY_RECOGNITION` (Android 10+). Export plugin manifest'e ekler,
`pedometer.gd` çalışma zamanında `OS.request_permission(...)` ile ister.
> Not: `libs/`, `local.properties`, `.gradle/`, `build/` ve wrapper jar'ı
> repoya girmez (bkz `.gitignore`).
---
## iOS (`pedometer-ios/`) — yazıldı
`CMPedometer` (CoreMotion) Objective-C++ plugin. Singleton `Pedometer`,
aynı 4 metot. Kaynak + `.gdip` config + build/iPhone yükleme adımları:
**`pedometer-ios/README.md`**.
> CMPedometer iOS Simulator'da çalışmaz → iPhone 13 ile gerçek cihaz testi.
> Derleme godot-ios-plugins harness (scons) ile, Xcode'da imzalı yüklenir.
---
## Test (native plugin olmadan)
Editör/masaüstünde HUD'daki **+100** butonu `Pedometer.sim_add(100)` çağırır,
ardından `/world/sync-steps` ile sunucuya gider. Sunucu dakika-başı tavan
(anti-cheat) uygular; aşan adımlar reddedilir ve `step_log`'a `accepted=false`
olarak yazılır.