en
Feedback
Mahdiware™

Mahdiware™

Open in Telegram

Show more
The country is not specifiedTechnologies & Applications47 091
460
Subscribers
+124 hours
+357 days
+9130 days
Posts Archive
🚀 Major Improvement & Bug Fixes! SaynaaIDE just got a major upgrade! ✨ Improved performance, fixed several bugs, and made th
+5
🚀 Major Improvement & Bug Fixes! SaynaaIDE just got a major upgrade! ✨ Improved performance, fixed several bugs, and made the overall experience more stable and reliable. More improvements are coming! 🔥 #SaynaaIDE #Update #BugFixes #AndroidDev #Programming

Demo

🚀 Introducing the Saynaa Ecosystem I’m working on three projects that make up the core of the Saynaa ecosystem: 🧠 SaynaaLang My own programming language, which is the foundation of the Saynaa ecosystem. 🌉 SaynaaJava A bridge between Saynaa and Java, allowing Saynaa code to communicate with Java and interact with Android through JNI. 💻 SaynaaIDE An Android IDE written in the Saynaa programming language. It is designed for developing and working with Saynaa projects directly on Android. 🔗 Open-source projects: • SaynaaLang — https://github.com/mahdiware/saynaa-lang • SaynaaJava — https://github.com/mahdiware/saynaa-java • SaynaaIDE — https://github.com/mahdiware/saynaa-ide 🛠️ All three projects are actively being developed and improved. If you're interested in programming languages, Android development, JNI, or building an IDE, feel free to explore the projects and follow the development! 🚀 #Saynaa #SaynaaIDE #SaynaaLang #SaynaaJava #Programming #Android #JNI #OpenSource

Calculator
Calculator

Calculator.syp1.02 KB

Saynaa IDE_1.0.0-dev.1.apk44.67 MB

Saynaa IDE_1.0.0-dev.1.apk44.67 MB

photo content
+3

SaynaaIDE
+9
SaynaaIDE

The automatic translation of java.lang.String has been re-enabled. The issue was not related to String translation itself. The real problem was in java.call() dispatch logic. Current java.call() target handling
// Target       | Meaning |  Dispatch // Class<?>  | static call | Class.method // Object instance | instance call | obj.method
I removed support for treating a raw String as a class name target. That means java.call() no longer tries to resolve a String value as a class path. Instead, it correctly distinguishes between: - Class<?> for static method calls - Java object instances for instance method calls This fixes the case where a java.lang.String object was being misinterpreted as a class name, which caused class resolution errors and method invocation failures. Now java.call() works with the correct dispatch behavior and avoids this confusion.

SaynaaIDE internal wrapper class
SaynaaIDE internal wrapper class

fixed this bug

Repost from N/a
TODO: I must stop auto-converting Java String objects into Saynaa String class. Bug:
strt = java.new("java.lang.String", "Hello OUT\n")
bytes = java.call(strt, "getBytes")
The variable strt is a Saynaa String instead of a JavaObject, so calling getBytes() fails. It incorrectly behaves like:
bytes = java.call("Hello OUT\n", "getBytes")

🔨 1 new commit to SaynaaIDE:main: 73c1e09: fix(java-bridge): preserve java.lang.String objects and avoid implicit SaynaaString conversion Java String instances returned from constructors and method calls are now kept as JavaObject values instead of being automatically converted to SaynaaString. This allows Java methods such as getBytes() to be called correctly on String instances. by Mohammed Abdifitaax (Mahdiware)

🔨 1 new commit to SaynaaIDE:main: d429973: build(deps): add R8 library for D8 dex compiler support - added com.android.tools:r8 dependency - enables Java .class to .dex compilation inside IDE by Mohammed Abdifitaax (Mahdiware)

🔨 1 new commit to SaynaaIDE:main: e3bd4ef: chore(storage): add MANAGE_EXTERNAL_STORAGE for testing phase Temporary full file access enabled for development. Will be replaced with SAF (DocumentFile) based workspace system. by Mohammed Abdifitaax (Mahdiware)

🔨 1 new commit to SaynaaIDE:main: 3a8c607: refactor: remove duplicate callStatic usage and simplify JNI bridge - replaced java.callStatic with java.call where appropriate - removed unused jmethodID entries from JNI layer - moved methods from JavaBridge into reflection package by Mohammed Abdifitaax (Mahdiware)

🔨 1 new commit to SaynaaIDE:main: 292c82e: added org.eclipse.jdt dependence, and storage permission by Mohammed Abdifitaax (Mahdiware)

🔨 2 new commits to SaynaaIDE:main: 976d613: feat(reflection): introduce reflection engine and improve JavaBridge + JNI integration by Mohammed Abdifitaax (Mahdiware) b617cb9: chore: bump version to 2.0.1 (versionCode 201) by Mohammed Abdifitaax (Mahdiware)

Refactored JNI layer to be lightweight by removing duplicate and unnecessary overhead code. and left some i will fix later.