Building An Unofficial Client For XDA Developers

AayushGupta618113 13 views 24 slides Aug 04, 2024
Slide 1
Slide 1 of 24
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24

About This Presentation

This is talk from COSCUP 2024 where I share some insights on how I built and unofficial Android app for the XDA Developers


Slide Content

Aayush Gupta
Building an Unofficial Client for
XDA Developers

•Independent Contractor
•Android Developer @ The Calyx
Institute, working on CalyxOS
•Senior Staff Member, DevRel @
XDA Developers (Forums)
•FOSS Developer & Contributor
About Me

EDUCATIONAL PURPOSES
ONLY!

Agenda
•API
•Authentication
•Notifications
•Closing
4

•Not happy with WebView app
after migration to Xenforo
•Later official app died and was
removed from Play Store
•Want to learn Compose
Why?
5

API

API
•New API wasn’t made public after migration
•Thanks to Audentio, we know XDA uses Xenforo which has a public REST API
documentation
•However, XDA also uses custom API endpoints
7

•Used HTTP Toolkit for analysing
network calls to figure out
required information related to
API
API
8

Auth Token

Authentication

Authentication
•Post-migration XDA switched to OAuth2 for logins
•App has to be registered on the server side to be able to allow logins
•Extracted required URL & parameters from the official app
•Requires to uninstall official app (due to app link verification)
13

•Used AppAuth-Android library
from openid for OAuth2 logins
•Easy to use and well
documented for beginners
•Seems unmaintained now
Authentication
14

Notifications

Notifications
•XDA uses Expo (expo.dev) for push notifications
•Expo (on server side) forwards the notifications to the app using Firebase
•Expo’s library is react-native only (calls official firebase library under the hood)
19

•Extracted firebase configuration
from official app using apktool
•Used Retrofit library to call Expo
API with official Firebase library
to register for push notifications
Notifications
20

Closing

Closing
•XDA Staff Members for testing, translations and help with development
•dr.ketan for modded official app
•XDA Community for everything
23

Thank You!