GithubHelp home page GithubHelp logo

ashampoosystems / boden Goto Github PK

View Code? Open in Web Editor NEW
1.6K 1.6K 95.0 37.81 MB

Purely native C++ cross-platform GUI framework for Android and iOS development. https://www.boden.io

License: Other

CMake 7.13% Python 10.87% Shell 0.01% C++ 62.45% C 0.26% Java 5.83% Objective-C++ 13.46%
android-ui cpp cpp17 cross-platform ios-ui mobile mobile-app mobile-development

boden's People

Contributors

gitoby avatar haukeduden avatar maddimax avatar mcraveiro avatar mrexodia avatar sryze avatar stakemura avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

boden's Issues

Support something like POLLY_IOS_DEVELOPMENT_TEAM

See: https://polly.readthedocs.io/en/latest/toolchains/ios/errors/polly_ios_development_team.html

For now I added the following to my CMakeLists.txt as a workaround:

# Based on: https://github.com/ruslo/polly/blob/c7462593865acbc0557fae6d461607a274dc6e36/utilities/polly_ios_development_team.cmake
string(COMPARE EQUAL "$ENV{BODEN_IOS_DEVELOPMENT_TEAM}" "" _is_empty)
if(_is_empty)
  polly_fatal_error(
      "Environment variable BODEN_IOS_DEVELOPMENT_TEAM is empty"
      " (see details: http://polly.readthedocs.io/en/latest/toolchains/ios/errors/polly_ios_development_team.html)"
  )
endif()

set(
    CMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM
    "$ENV{BODEN_IOS_DEVELOPMENT_TEAM}"
)

Add public to NativeInit::baseInit

I want to access NativeInit::baseInit from outside package.
Would you like to add public?

    static void baseInit(String nativeLibName)
    {
        if(!mBaseInitialized)
        {
            System.loadLibrary(nativeLibName);

            mBaseInitialized = true;
        }
    }

Support for developing desktop apps

This framework was exactly what I was looking for. Standard C++ types well used. Qt and others are just old and don't feel very modern. However, desktop support is very important even today. Mobile can only do some much, those are dumb down devices with not much productivity for actual work. Please add support for desktop platforms such as Windows (possibly WinUI 2 or 3), macOS and Linux (possibility GTK).

Cmake Issue

I've downloaded the Cmake but when I tried to run demo project of Boden Framework, it shows an error:

C:\Users\yakup.kayabas\boden>python boden.py open -p android -t bodendemo
Traceback (most recent call last):
File "C:\Users\yakup.kayabas\boden./bauer\bauer.py", line 71, in main
return run(argv)
^^^^^^^^^
File "C:\Users\yakup.kayabas\boden./bauer\bauer.py", line 37, in run
generatorInfo = GeneratorInfo();
^^^^^^^^^^^^^^^
File "C:\Users\yakup.kayabas\boden./bauer\generatorinfo.py", line 11, in init
raise Exception("Couldn't find cmake executable. Please download and install it from www.cmake.org/download")
Exception: Couldn't find cmake executable. Please download and install it from 'www.cmake.org/download'

but like I said, I've downloaded and double checked the Cmake and Cmake's version that I have.

Demo build doesn't work in Win 10

Try to run this command
python ./boden.py -d open -t bodendemo

got ...

[2020-04-23 14:18:47,043](bauerargparser): Bauer options: Namespace(accept_terms=False, arch=None, build_folder=None, build_system=None, cmake_option=None, command='open', config=None, debug=False, macos_min_version=None, macos_sdk_path=None, package_folder=None, package_generator=None, platform=None, target='bodendemo')
[2020-04-23 14:18:47,043](cmake): CMake found at: C:\Program Files\CMake\bin\cmake.exe
[2020-04-23 14:18:47,043](cmake): CMake found at: C:\Program Files\CMake\bin\cmake.exe
[2020-04-23 14:18:47,043](commandprocessor): Starting command: open
[2020-04-23 14:18:47,059](buildfolder): Existing configurations:
[2020-04-23 14:18:47,059](commandprocessor): Selected platform list:
[2020-04-23 14:18:47,059](commandprocessor): Defaulting to: android - AndroidStudio
[2020-04-23 14:18:47,059](commandprocessor): Build system does not match the one used when the projects for this platform were first prepared. Cleaning existing build files.
[2020-04-23 14:18:47,059](commandprocessor): (No previous state found)
[2020-04-23 14:18:47,059](commandprocessor): New config: BuildConfiguration(platform='android', arch='std', buildsystem='AndroidStudio', config=None)
[2020-04-23 14:18:47,293](commandprocessor): Preparing c:\code\projects\podlite\boden\build\android\std\AndroidStudio
[2020-04-23 14:18:47,293](androidexecutor): Preparing android environment...
[2020-04-23 14:18:47,293](androidexecutor): Ensuring that all necessary android packages are installed...
Warning: File C:\Users\André\.android\repositories.cfg could not be loaded.
Warning: File C:\Users\André\.android\repositories.cfg could not be loaded.
Warning: File C:\Users\André\.android\repositories.cfg could not be loaded.
[=======================================] 100% Computing updates...
[2020-04-23 14:18:53,927](androidexecutor): Done updating packages.
[2020-04-23 14:18:53,951](gradle): No system gradle found, using own...
[2020-04-23 14:18:53,953](gradle): Calling c:\code\projects\podlite\boden\3rdparty_build\gradle\gradle-5.3.1\bin\gradle.bat --stop
No Gradle daemons are running.
[2020-04-23 14:18:55,729](cmake): Server Protocol version: [1, 2]
[2020-04-23 14:18:55,744](cmake): VERSION: 3.17.1
[2020-04-23 14:18:55,744](androidexecutor): Starting configure ...
[2020-04-23 14:18:55,744](androidexecutor):  Arguments: ['-DCMAKE_TOOLCHAIN_FILE=C:/AndroidSdk/ndk-bundle/build/cmake/android.toolchain.cmake', '-DCMAKE_SYSTEM_NAME=Android', '-DANDROID_ABI=x86', '-DANDROID_NATIVE_API_LEVEL=28', '-DBAUER_RUN=Yes', '-DCMAKE_MAKE_PROGRAM=C:/AndroidSdk/ndk-bundle/prebuilt/windows-x86_64/bin/make.exe']
[2020-04-23 14:18:55,744](androidexecutor):  Generator: Unix Makefiles
[2020-04-23 14:18:55,744](cmake): Configuring ...
-- Check for working C compiler: C:/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/bin/clang.exe
-- Check for working C compiler: C:/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/bin/clang.exe - works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++.exe
-- Check for working CXX compiler: C:/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++.exe - works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Boden platform:
--   Name: android
--   Family: posix
-- Boden configuration:
--   Uses foundation kit: No
--   Uses java: Yes
--   Force shared: Yes
--   Force static: No
-- Found PythonInterp: C:/Python27/python.exe (found version "2.7.14")
-- Using the single-header code from C:/code/projects/podlite/boden/3rdparty/json/single_include/
-- CMake Warning (dev) at 3rdparty/googletest/CMakeLists.txt:3 (project):
  Policy CMP0048 is not set: project() command manages VERSION variables.
  Run "cmake --help-policy CMP0048" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  The following variable(s) would be set to empty:

    PROJECT_VERSION
    PROJECT_VERSION_MAJOR
    PROJECT_VERSION_MINOR
    PROJECT_VERSION_PATCH
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - not found
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE
-- Boden library configuration:
--   Shared: Off
--   Architecture: 32 bit
-- Performing Test HAS_STD_FILESYSTEM
-- Performing Test HAS_STD_FILESYSTEM - Failed
-- Including custom std::filesystem implementation
-- Package name: boden-0.3.0-android-x86-28-%BUILD_TYPE%-Clang
-- Configuring done
-- CMake Deprecation Warning:
  The 'cmake-server(7)' is deprecated.  Please port clients to use the
  'cmake-file-api(7)' instead.


[2020-04-23 14:19:08,026](cmake): Done.
[2020-04-23 14:19:08,028](cmake): Generating ...
-- Generating done
[2020-04-23 14:19:10,055](cmake): Comparing: c:\code\projects\podlite\boden
[2020-04-23 14:19:10,055](cmake): with:     C:\code\projects\podlite\boden
[2020-04-23 14:19:10,055](cmake): with:     C:\code\projects\podlite\boden\3rdparty\googletest\googlemock
[2020-04-23 14:19:10,055](cmake): with:     C:\code\projects\podlite\boden\3rdparty\googletest
[2020-04-23 14:19:10,055](cmake): with:     C:\code\projects\podlite\boden\3rdparty\googletest\googletest
[2020-04-23 14:19:10,055](cmake): with:     C:\code\projects\podlite\boden\3rdparty\json
Traceback (most recent call last):
  File "c:\code\projects\podlite\boden\./bauer\bauer.py", line 71, in main
    return run(argv)
  File "c:\code\projects\podlite\boden\./bauer\bauer.py", line 67, in run
    commandProcessor.process()
  File "c:\code\projects\podlite\boden\./bauer\commandprocessor.py", line 119, in process
    self.prepare(configuration, platformState)
  File "c:\code\projects\podlite\boden\./bauer\commandprocessor.py", line 133, in prepare
    self.androidExecutor.prepare(platformState, configuration, self.args)
  File "c:\code\projects\podlite\boden\./bauer\androidexecutor.py", line 113, in prepare
    self.prepareAndroidStudio(platformState, configuration, androidAbi, androidHome, buildDir, args)
  File "c:\code\projects\podlite\boden\./bauer\androidexecutor.py", line 207, in prepareAndroidStudio
    project = config["main-project"]
KeyError: 'main-project'

I had also another problem the build was pointing to windows-x86_64 folder but on the new ndk it is just windows

Future of the project

Has there been any decisions made internally about what to do with this project going forward? There was a mention of it being re-licensed under something a little more permissive.

@gitoby

Installing and running test demo

Dear Boden Team,

I installed all dependencies and tryed running the demo via python boden.py open -p android -t bodendemo .

I got the following response:
Traceback (most recent call last): File "C:\Users\DR\Documents\boden\./bauer\bauer.py", line 71, in main return run(argv) File "C:\Users\DR\Documents\boden\./bauer\bauer.py", line 37, in run generatorInfo = GeneratorInfo(); File "C:\Users\DR\Documents\boden\./bauer\generatorinfo.py", line 23, in __init__ cmakeHelp = subprocess.check_output("\"" + self.cmakeExecutable + "\" --help", shell=True, universal_newlines=True, stderr=errOutFile ); File "C:\Program Files\Python310\lib\subprocess.py", line 420, in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, File "C:\Program Files\Python310\lib\subprocess.py", line 503, in run stdout, stderr = process.communicate(input, timeout=timeout) File "C:\Program Files\Python310\lib\subprocess.py", line 1136, in communicate stdout = self.stdout.read() File "C:\Program Files\Python310\lib\encodings\cp1252.py", line 23, in decode return codecs.charmap_decode(input,self.errors,decoding_table)[0] UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 3: character maps to <undefined>

Has anyone else run into this? Any possible solution??

Ability or inability

Hello dear boden team
I am very interested in boden framework but due to a lack of resources and statements from friends and relatives, I have become discouraged by boden framework .
My friends at the university and around me tell me that with boden framework you can not implement and develop advanced UIs for mobile devices and you should use flutter and react native for advanced UIs, for example, UIs such as the link below can not be used. Implemented in boden framework :
https://search.muz.li/YzA3M2MwZTAy
and
https://search.muz.li/ZjcyYjQ1Yzhl
so can i implement like this ui with boden framework ?and how?
and I have some question:
can I use other api with other language like python for backend?

Please answer all my questions and guide me

build-folder option not working

It looks like something is broken with the --build-folder option.

$ ./boden prepare --build-folder ./build2
[2019-08-19 21:24:57,146] Defaulting to: ios - Xcode
[2019-08-19 21:24:57,146] Build system does not match the one used when the projects for this platform were first prepared. Cleaning existing build files.
[2019-08-19 21:24:57,160] Preparing ./build2/ios/std/Xcode
[2019-08-19 21:24:57,189] Configuring ...
-- The C compiler identification is unknown
-- CMake Error: Could not find cmake module file: ./build2/ios/std/Xcode/CMakeFiles/3.12.3/CMakeCCompiler.cmake
-- The CXX compiler identification is unknown
-- CMake Error: Could not find cmake module file: ./build2/ios/std/Xcode/CMakeFiles/3.12.3/CMakeCXXCompiler.cmake
-- CMake Error at CMakeLists.txt:14 (project):
  No CMAKE_C_COMPILER could be found.



-- CMake Error at CMakeLists.txt:14 (project):
  No CMAKE_CXX_COMPILER could be found.



-- Configuring incomplete, errors occurred!
See also "./build2/ios/std/Xcode/CMakeFiles/CMakeOutput.log".
See also "./build2/ios/std/Xcode/CMakeFiles/CMakeError.log".
Traceback (most recent call last):
  File "/Users/duncan/Projects/boden_build/./bauer/bauer.py", line 71, in main
    return run(argv)
  File "/Users/duncan/Projects/boden_build/./bauer/bauer.py", line 67, in run
    commandProcessor.process()
  File "/Users/duncan/Projects/boden_build/./bauer/commandprocessor.py", line 91, in process
    self.prepare(configuration, platformState);
  File "/Users/duncan/Projects/boden_build/./bauer/commandprocessor.py", line 135, in prepare
    self.buildExecutor.prepare(platformState, configuration, self.args)
  File "/Users/duncan/Projects/boden_build/./bauer/buildexecutor.py", line 155, in prepare
    self.cmake.configure(cmakeArguments)
  File "/Users/duncan/Projects/boden_build/./bauer/cmake.py", line 92, in configure
    self.waitForResult("configure", "CONFIGURE")
  File "/Users/duncan/Projects/boden_build/./bauer/cmake.py", line 83, in waitForResult
    raise Exception("Error occured during configure:", payload["errorMessage"])
Exception: ('Error occured during configure:', 'Configuration failed.')

Any ideas?

Doing ./boden prepare --build-folder $(pwd)/build2 seems to work fine for some reason.

Install Failed

I have a Windows 11 desktop with Visual Studio 2022, Android studio giraffe, and Java 18 installed. Here is my install output and environment list:

C:>cd boden

C:\boden>dir
Volume in drive C is OS
Volume Serial Number is 44F2-8796

Directory of C:\boden

10/04/2023 07:53 AM

.
10/04/2023 07:53 AM 548 .clang-format
10/04/2023 07:53 AM 9,818 .clang-tidy
10/04/2023 07:53 AM 77 .dockerignore
10/04/2023 07:53 AM 435 .gitattributes
10/04/2023 07:53 AM 150 .gitignore
10/04/2023 07:53 AM 450 .gitmodules
10/04/2023 07:53 AM 3rdparty
10/04/2023 07:53 AM bauer
10/04/2023 07:53 AM 83 boden
10/04/2023 07:53 AM 207 boden.py
10/04/2023 07:53 AM 9,657 CHANGELOG.md
10/04/2023 07:53 AM 8,323 CLA.md
10/04/2023 07:53 AM cmake
10/04/2023 07:53 AM 1,722 CMakeLists.txt
10/04/2023 07:53 AM 3,823 CONTRIBUTING.md
10/04/2023 07:53 AM docker
10/04/2023 07:53 AM docs
10/04/2023 07:53 AM examples
10/04/2023 07:53 AM framework
10/04/2023 07:53 AM 14,683 Jenkinsfile
10/04/2023 07:53 AM 22,236 LICENSE.FDL-1.3.md
10/04/2023 07:53 AM 15,326 LICENSE.GPL-2.md
10/04/2023 07:53 AM 32,870 LICENSE.GPL-3.md
10/04/2023 07:53 AM 24,817 LICENSE.LGPL-2.1.md
10/04/2023 07:53 AM 8,018 LICENSE.LGPL-3.md
10/04/2023 07:53 AM 514 LICENSE.md
10/04/2023 07:53 AM package
10/04/2023 07:53 AM 326 PULL_REQUEST_TEMPLATE.md
10/04/2023 07:53 AM README
10/04/2023 07:53 AM 7,807 README.md
10/04/2023 07:53 AM roger
10/04/2023 07:53 AM tests
10/04/2023 07:53 AM 2,595 THIRD-PARTY-LICENSES.md
22 File(s) 164,485 bytes
12 Dir(s) 399,908,704,256 bytes free

C:\boden>python boden.py open -p android -t bodendemo
[2023-10-04 08:48:37,152] Defaulting to: android - AndroidStudio
[2023-10-04 08:48:37,153] Preparing C:\boden\build\android\std\AndroidStudio
[2023-10-04 08:48:37,153] Android home directory automatically detected as: C:\Users\alwil/AppData/Local/Android/SDK
[2023-10-04 08:48:37,154] Preparing android environment...
[2023-10-04 08:48:37,154] Android home directory automatically detected as: C:\Users\alwil/AppData/Local/Android/SDK
[2023-10-04 08:48:37,155] Ensuring that all necessary android packages are installed...
[2023-10-04 08:48:37,155] Android home directory automatically detected as: C:\Users\alwil/AppData/Local/Android/SDK
[2023-10-04 08:48:37,155] Android home directory automatically detected as: C:\Users\alwil/AppData/Local/Android/SDK
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
at com.android.repository.api.SchemaModule$SchemaModuleVersion.(SchemaModule.java:156)
at com.android.repository.api.SchemaModule.(SchemaModule.java:75)
at com.android.sdklib.repository.AndroidSdkHandler.(AndroidSdkHandler.java:81)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 5 more
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
at com.android.repository.api.SchemaModule$SchemaModuleVersion.(SchemaModule.java:156)
at com.android.repository.api.SchemaModule.(SchemaModule.java:75)
at com.android.sdklib.repository.AndroidSdkHandler.(AndroidSdkHandler.java:81)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 5 more
[2023-10-04 08:48:37,548] Failed to get Android SDK module list
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
at com.android.repository.api.SchemaModule$SchemaModuleVersion.(SchemaModule.java:156)
at com.android.repository.api.SchemaModule.(SchemaModule.java:75)
at com.android.sdklib.repository.AndroidSdkHandler.(AndroidSdkHandler.java:81)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 5 more
[2023-10-04 08:48:37,674] Failed getting emulator, you will not be able to 'run' this configuration
[2023-10-04 08:48:37,674] Done updating packages.
[2023-10-04 08:48:37,687] Downloading gradle...
[2023-10-04 08:48:40,455] Extracting gradle...

Welcome to Gradle 5.3.1!

Here are the highlights of this release:

  • Feature variants AKA "optional dependencies"
  • Type-safe accessors in Kotlin precompiled script plugins
  • Gradle Module Metadata 1.0

For more details see https://docs.gradle.org/5.3.1/release-notes.html

No Gradle daemons are running.
CMake Error: CMake server mode has been removed in favor of the file-api.
Traceback (most recent call last):
File "C:\boden./bauer\bauer.py", line 71, in main
return run(argv)
^^^^^^^^^
File "C:\boden./bauer\bauer.py", line 67, in run
commandProcessor.process()
File "C:\boden./bauer\commandprocessor.py", line 119, in process
self.prepare(configuration, platformState)
File "C:\boden./bauer\commandprocessor.py", line 133, in prepare
self.androidExecutor.prepare(platformState, configuration, self.args)
File "C:\boden./bauer\androidexecutor.py", line 113, in prepare
self.prepareAndroidStudio(platformState, configuration, androidAbi, androidHome, buildDir, args)
File "C:\boden./bauer\androidexecutor.py", line 177, in prepareAndroidStudio
self.cmake.open(self.sourceDirectory, tmpCMakeFolder, "Unix Makefiles")
File "C:\boden./bauer\cmake.py", line 43, in open
raise Exception("Unknown failure, maybe cmake does not support server mode")
Exception: Unknown failure, maybe cmake does not support server mode

C:\boden>

C:\boden>set
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\alwil\AppData\Roaming
ChocolateyInstall=C:\ProgramData\chocolatey
ChocolateyLastPathUpdate=133190393482342123
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=DESKTOP-I5GCG1F
ComSpec=C:\WINDOWS\system32\cmd.exe
DriverData=C:\Windows\System32\Drivers\DriverData
GTK_BASEPATH=C:\Program Files (x86)\GtkSharp\2.12
HOMEDRIVE=C:
HOMEPATH=\Users\alwil
IGCCSVC_DB=AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAALqOvTDlzDkWZAxZc2lNHwQQAAAACAAAAAAAQZgAAAAEAACAAAACGpbJq7GlJRcDchrpePN/7CW5r/fRBuNWo2PQFnz4yBQAAAAAOgAAAAAIAACAAAADWaYcMnZYc4G/XduGRXjeteWO68OV/I0OG1aR47M6T8mAAAAApRb7sGR60ORQl4B2BxckA3SRNWAj+jXepm+VpcccxSE7/V1UDD9gXCVYpK/YPqyEWBWzkN+CxEyPPYBlOoUiJMUnoq6Ob1Vl2BttQrQkCBzCY3/bAkFkP/VLoP6I3wvhAAAAAGn5obCknlYwC4eHOBEDCJK4FQ6nsIEffUZOxkishPPptPiROMsTD7ljCLDcudQsYccaWmhpzXdPMOMB7DmdWZA==
JAVA_HOME=C:\Program Files\Java\jdk-17
LOCALAPPDATA=C:\Users\alwil\AppData\Local
LOGONSERVER=\DESKTOP-I5GCG1F
NUMBER_OF_PROCESSORS=16
OneDrive=C:\Users\alwil\OneDrive
OS=Windows_NT
Path=C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files\Java\jdk-20;C:\Program Files\Java\jdk-20\bin;C:\VulkanSDK\1.3.246.1\Bin;C:\Python311\Scripts;C:\Python311;C:\Program Files\Microsoft\jdk-11.0.12.7-hotspot\bin;C:\Program Files\Microsoft\jdk-11.0.16.101-hotspot\bin;C:\Program Files\Python37\Scripts;C:\Program Files\Python37;C:\Program Files\Eclipse Foundation\jdk-8.0.302.8-hotspot\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\Microsoft SQL Server\130\Tools\Binn;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Program Files\dotnet;C:\Program Files\Microsoft SQL Server\150\Tools\Binn;C:\Program Files\PuTTY;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn;C:\Program Files\Microsoft SQL Server\150\DTS\Binn;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn;C:\Program Files\Azure Data Studio\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Program Files (x86)\Muse;C:\Program Files\Python37\Scripts;C:\Program Files (x86)\GtkSharp\2.12\bin;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn;c:\Program Files\Microsoft SQL Server\100\Tools\Binn;c:\Program Files\Microsoft SQL Server\100\DTS\Binn;C:\Program Files\nodejs;C:\ProgramData\chocolatey\bin;C:\Program Files\swipl\bin;C:\Program Files\Git\cmd;C:\arity;C:\arwutil;C:\Program Files\CMake\bin;D:\CWork\SDL2\SDL_BINS_64;C:\Program Files (x86)\IncrediBuild;C:\Users\alwil\AppData\Local\Microsoft\WindowsApps;C:\Users\alwil.dotnet\tools;C:\Program Files\JetBrains\PyCharm Community Edition 2022.2.3\bin;C:\Users\alwil\AppData\Roaming\npm
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 167 Stepping 1, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=a701
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\PowerShell\Modules
PUBLIC=C:\Users\Public
PyCharm Community Edition=C:\Program Files\JetBrains\PyCharm Community Edition 2022.2.3\bin;
SDL_INCLUDES=D:\CWork\SDL2\SDL_INCLUDES
SDL_LIBS_64=D:\CWork\SDL2\SDL_LIBS_64
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\Users\alwil\AppData\Local\Temp
TMP=C:\Users\alwil\AppData\Local\Temp
USERDOMAIN=DESKTOP-I5GCG1F
USERDOMAIN_ROAMINGPROFILE=DESKTOP-I5GCG1F
USERNAME=alwil
USERPROFILE=C:\Users\alwil
VK_SDK_PATH=C:\VulkanSDK\1.3.246.1
VS100COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools
VS80COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools
VULKAN_SDK=C:\VulkanSDK\1.3.246.1
windir=C:\WINDOWS
ZES_ENABLE_SYSMAN=1

C:\boden>

boden open doesn't work on Fedora

I followed the instructions to setup boden on Fedora.

I get an error when I try to open the demo project :

[2019-07-13 12:05:48,320] Defaulting to: android - AndroidStudio
[2019-07-13 12:05:48,320] Build system does not match the one used when the projects for this platform were first prepared. Cleaning existing build files.
[2019-07-13 12:05:48,335] Preparing /data/dimitri/gits/boden/build/android/std/AndroidStudio
[2019-07-13 12:05:48,335] Preparing android environment...
[2019-07-13 12:05:48,335] Ensuring that all necessary android packages are installed...
Warning: File /home/dimitri/.android/repositories.cfg could not be loaded.
Warning: File /home/dimitri/.android/repositories.cfg could not be loaded.
[=======================================] 100% Computing updates...
[2019-07-13 12:05:52,158] Done updating packages.
No Gradle daemons are running.
[2019-07-13 12:05:52,808] Configuring ...
-- Check for working C compiler: /home/dimitri/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang
-- Check for working C compiler: /home/dimitri/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /home/dimitri/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++
-- Check for working CXX compiler: /home/dimitri/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Boden platform:
-- Name: android
-- Family: posix
-- Boden configuration:
-- Uses foundation kit: No
-- Uses java: Yes
-- Force shared: Yes
-- Force static: No
-- clang-format was not found!
-- Found PythonInterp: /usr/bin/python (found version "2.7.16")
-- Using the single-header code from /home/dimitri/gits/boden/3rdparty/json/single_include/
-- CMake Warning (dev) at 3rdparty/googletest/CMakeLists.txt:3 (project):
Policy CMP0048 is not set: project() command manages VERSION variables.
Run "cmake --help-policy CMP0048" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.

The following variable(s) would be set to empty:

PROJECT_VERSION
PROJECT_VERSION_MAJOR
PROJECT_VERSION_MINOR
PROJECT_VERSION_PATCH

This warning is for project developers. Use -Wno-dev to suppress it.

-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE
-- Boden library configuration:
-- Shared: Off
-- Architecture: 32 bit
-- Package name: boden-0.2.0-android-x86-28-%BUILD_TYPE%-Clang
-- Configuring done
[2019-07-13 12:05:54,270] Done.
[2019-07-13 12:05:54,270] Generating ...
-- Generating done
Traceback (most recent call last):
File "/data/dimitri/gits/boden/./bauer/bauer.py", line 66, in main
return run(argv)
File "/data/dimitri/gits/boden/./bauer/bauer.py", line 62, in run
commandProcessor.process()
File "/data/dimitri/gits/boden/./bauer/commandprocessor.py", line 119, in process
self.prepare(configuration, platformState)
File "/data/dimitri/gits/boden/./bauer/commandprocessor.py", line 133, in prepare
self.androidExecutor.prepare(platformState, configuration, self.args)
File "/data/dimitri/gits/boden/./bauer/androidexecutor.py", line 84, in prepare
self.prepareAndroidStudio(platformState, configuration, androidAbi, androidHome, buildDir, args)
File "/data/dimitri/gits/boden/./bauer/androidexecutor.py", line 168, in prepareAndroidStudio
project = config["main-project"]
KeyError: 'main-project'

I tried both ./boden and python boden

Do I have a dependency missing ?

I'm using Fedora 30.

Bodendemo seems to be broken on Android

Just tried the build - it worked and I managed to run the app on my phone. But when I tried out some menu items in the list and clicked back button to go back to the menu page I got this:

Screenshot_20190628-235449

It seems that each item is still clickable and functional in that sense; it's just that all the labels are gone.

Configuration error

I encountered a syntax error ...
I have a little trouble interpreting it.
Please explain to me the cause of this error.
This is the code of error :
Capture
`
Thank you

Build is not working on macOS Mojave 10.14.5 (18F132)

Hi guys,
When I run:
$ python boden.py open

I get this error:
[2019-05-30 22:02:56,335] Defaulting to: ios - Xcode
[2019-05-30 22:02:56,335] Build system does not match the one used when the projects for this platform were first prepared. Cleaning existing build files.
[2019-05-30 22:02:56,336] Preparing /Users/myusername/projects/games/boden/build/ios/std/Xcode

2019-05-30 22:02:56,352] Configuring ...
-- CMake Error:
Xcode 1.5 not supported.

Traceback (most recent call last):
File "/Users/myusername/projects/games/boden/./bauer/bauer.py", line 66, in main
return run(argv)
File "/Users/myusername/projects/games/boden/./bauer/bauer.py", line 62, in run
commandProcessor.process()
File "/Users/myusername/projects/games/boden/./bauer/commandprocessor.py", line 119, in process
self.prepare(configuration, platformState)
File "/Users/myusername/projects/games/boden/./bauer/commandprocessor.py", line 135, in prepare
self.buildExecutor.prepare(platformState, configuration, self.args)
File "/Users/myusername/projects/games/boden/./bauer/buildexecutor.py", line 155, in prepare
self.cmake.configure(cmakeArguments)
File "/Users/myusername/projects/games/boden/./bauer/cmake.py", line 92, in configure
self.waitForResult("configure", "CONFIGURE")
File "/Users/myusername/projects/games/boden/./bauer/cmake.py", line 83, in waitForResult
raise Exception("Error occured during configure:", payload["errorMessage"])
Exception: ('Error occured during configure:', u'Could not set up the requested combination of "generator" and "extraGenerator"')

I am really looking forward to play on this.
Thanks,
Jongi

Error build on Xcode 11.1

..../boden/framework/foundation/platforms/foundationkit/filesystem/include/filesystem:291:8: Redefinition of '_FilesystemClock'

boden.py fails, Windows 10

attempting to run the example using boden.py throws an error saying it is unable to find ANDROID_HOME variable; after hardcoding the absolute path the .bat file fails and is unable to correctly create an android studio project. Could you guys maybe just provide a template with starting files already configured, instead of running a python script to create everyhting, especially if it is going to fail

error: 'tuple_size' when building with Android NDK r20

Building the bodendemo with the latest version of Android Studio and the NDK (r20) results in the following error:

[50/129] Building CXX object framework/ui/CMakeFiles/ui.dir/src/Button.cpp.o
FAILED: framework/ui/CMakeFiles/ui.dir/src/Button.cpp.o 
/home/hasse/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android23 --gcc-toolchain=/home/hasse/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64 --sysroot=/home/hasse/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot  -DBDN_HAS_NLOHMANN_JSON -DBDN_SHARED_LIB=1 -DUNICODE -D_UNICODE -Dui_EXPORTS -I../../../../../../../../../framework/ui/include -Iframework/ui/include -I../../../../../../../../../framework/foundation/include -Iframework/foundation/include -I../../../../../../../../../framework/foundation/platforms/android/include -I../../../../../../../../../3rdparty/json/single_include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -Wa,--noexecstack -Wformat -Werror=format-security -frtti -fexceptions -std=c++17 -frtti -fexceptions -O0 -fno-limit-debug-info  -fPIC   -Werror -Wmost -std=gnu++17 -MD -MT framework/ui/CMakeFiles/ui.dir/src/Button.cpp.o -MF framework/ui/CMakeFiles/ui.dir/src/Button.cpp.o.d -o framework/ui/CMakeFiles/ui.dir/src/Button.cpp.o -c ../../../../../../../../../framework/ui/src/Button.cpp
In file included from ../../../../../../../../../framework/ui/src/Button.cpp:1:
In file included from ../../../../../../../../../framework/ui/include/bdn/ui/Button.h:4:
In file included from ../../../../../../../../../framework/ui/include/bdn/ui/ClickEvent.h:3:
In file included from ../../../../../../../../../framework/ui/include/bdn/ui/ViewEvent.h:3:
In file included from ../../../../../../../../../framework/ui/include/bdn/ui/View.h:3:
../../../../../../../../../3rdparty/json/single_include/nlohmann/json.hpp:1799:1: error: 'tuple_size' defined as a class template here but previously declared as a struct template [-Werror,-Wmismatched-tags]
class tuple_size<::nlohmann::detail::iteration_proxy_value<IteratorType>>
^
/home/hasse/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__tuple:25:22: note: did you mean class here?
template <class _Tp> struct _LIBCPP_TEMPLATE_VIS tuple_size;
                     ^
1 error generated.

[Proposal]: Enable full C++ Exception support via "Dynamically Registering C++ Exception Handlers" proposal

Hello! I heard about Boden on Cppcast (https://cppcast.com/marcus-tobias/), and it sounds really cool! :)

I love the idea of a pure C++ library that embraces modern C++, and provides native UIs for the target environments. To me, this is the right solution for building UIs in C++, so all my best wishes and support! :)

This issue is a proposal to support a key feature of C++ that has, as far as I know, never been well supported in a widely used C++ GUI framework: native C++ exception handling.

TL;DR: My 2013 (😅) undergraduate honors thesis proposes a mechanism to properly support user code throwing arbitrary exceptions in a C++ application framework, and I believe this work could be easily added to Boden! The idea is essentially to have user code dynamically register exception handlers by exception type, and have the framework implement a central handler function that matches the caught exception to the correct handler. This solution places minimal burden on the app developer.

Boden is attempting to be a modern C++17 GUI framework, and good, modern C++ code often throws exceptions, so I think having a great story around exception handling would be really neat.

The paper can be found here:
"Dynamically Registering C++ Exception Handlers: Centralized Handling of C++ Exceptions in Application Framework Libraries"
https://deepblue.lib.umich.edu/handle/2027.42/102769

Unfortunately, this was my first academic paper, so it is quite rambly. Sorry about that! You might enjoy simply scanning the code in the Appendix, which contains a simple example implementation of this idea.


I wasn't able to find any information on exception handling in your documentation, so I might be mistaken, but glancing through the source code I think these ideas could be relevant. Boden is slightly less of an easy candidate for this than other C++ gui frameworks could be, because the main application run-loop (a convenient place to put the exception handling) isn't in your code; it's of course instead in either Apple's or Android's code. However, by placing try/catch wrappers around a few key callback points in the Boden code, I think this could still be valuable.

The goal of the work in the paper is to prevent users from having to repeat their exception-handling boiler-plate across every one of their callbacks. For example, a purely custom-written terminal UI application might have code that looks like this:

int main() {
  while (true) { // loop forever until the program exits
    try {
      auto cmd = read_user_input_cmd();

      if (cmd == ACTION__X) {
        do_x_action(read_x_input());
      } else if (/* ... */) { /* ... */ }

      // ...

    } catch (const BadInputException& e) {
      cout << "Error: Got bad input `" << e.got << "`, expected `" << e.expected << "`." << endl;
    } catch (/*...*/) { /*...*/ }
  }
  return 0;
}

But for a GUI program, where the developer is implementing callbacks to hook-up their functionality to GUI actions, there is no central place for the developer to put the exception handlers, so they may have to repeat that handling logic across many different callbacks, which is especially annoying if there are several different types that the developer wants to handle.

The paper essentially proposes having developers dynamically register exception handlers per-exception-type with the GUI framework, which the framework can then match exceptions against whenever an exception escapes user code. The crux of this approach relies on a somewhat weird trick where the GUI framework's handler repeatedly rethrows the exception in a new try-block, where it can be caught by the user's registered dynamic handlers.

It's essentially taking advantage of this (somewhat surprising) behavior:

try {
  throw /* ...Something... */; // 0. exception object is allocated here.
}
catch(...) {
  // 1. From here, the exception type is unknown.
  try { // 2. so we enter a new try-block to try again to find a good handler.
    throw; // 3. rethrow the exception (the runtime still know's the exceptions type even though code in this `...` block doesn't have access to it.)
  }
  catch(A &e) {
    // 4. the original exception was of type A.
  }
  catch(B &e) {
    // 5. the original exception was of type B.
  }
  catch(...) {
    // 6. we still do not know the type of the exception.
  }
} // 7. the exception object is deallocated here.

The only addition is that you repeat this try/re-throw/catch sequence in a loop, once for each dynamically registered handler, calling their try_handle_exception function, which is templated for the correct exception type.


AAAAAANNNNNYYYYYYYWAY, sorry for the long post! I just got excited when hearing about Boden in the podcast, and wanted to share the ideas in that paper because it's rare to find a relevant audience! 😊

Unfortunately, I'm not working on C++ much anymore these days (instead I'm working almost exclusively in julia, and I love it!) but i'm happy to chat with you about these ideas and/or maybe help you implement them in my spare time if it's something you're interested in!

Cheers! All the best,
~Nathan Daly

CMAKE!

I just cant seem to get the build to work again.

Cmake's updates have destroyed compilation.

Has anyone had a work round?

Regards,
Phillip

Great idea, but why GPL?

Wouldn't MIT lead to more adoption.

It's a great idea for cross-platform apps, good 'ol C++ !

CMake File APIs

I followed the commands to build my app, but the terminal spits this out at me:

CMake Error: CMake server mode has been removed in favor of the file-api.
Traceback (most recent call last):
File "/Users/kdn_fgc/boden/./bauer/bauer.py", line 71, in main
return run(argv)
File "/Users/kdn_fgc/boden/./bauer/bauer.py", line 67, in run
commandProcessor.process()
File "/Users/kdn_fgc/boden/./bauer/commandprocessor.py", line 119, in process
self.prepare(configuration, platformState)
File "/Users/kdn_fgc/boden/./bauer/commandprocessor.py", line 135, in prepare
self.buildExecutor.prepare(platformState, configuration, self.args)
File "/Users/kdn_fgc/boden/./bauer/buildexecutor.py", line 158, in prepare
self.cmake.open(self.sourceDirectory, cmakeBuildDir, generatorName, extraGeneratorName = "", extraEnv=cmakeEnvironment)
File "/Users/kdn_fgc/boden/./bauer/cmake.py", line 43, in open
raise Exception("Unknown failure, maybe cmake does not support server mode")
Exception: Unknown failure, maybe cmake does not support server mode

Please fix this issue. I'd do it myself, but I'm only a beginner.

Integration with conan

I am using the conan package manager in my project and looking at boden for the mobile UI. I am struggling to get the cmake-conan module to work with boden, but it seems to get confused by the multi-build. Is there a recommended way to integrate 3rd party libraries into the project? Conan is nice because it seems to have support for Andriod and IOS, and is based on cmake.

Unknow Failure: cmake.

Hi, I'm gettin error exception while running

python boden.py open -t bodendemo

or

python boden.py open -p android -t bodendemo

Error

    raise Exception("Unknown failure, maybe cmake does not support server mode")
Exception: Unknown failure, maybe cmake does not support server mode

I also tried to add boden to local environment. The result are same.


System info:

  • Windows 10
  • Cmake 3.20.0
  • Git 2.30.2
  • Android Studio 4.1.2
  • Ninja 1.10.0.git.kitware.jobserver-1
  • Python 3.7.9
  • JDK 15.0.2 2021-01-19

BodenDemo

I followed the instructions to get started on MacOS. When I reached the point where the instruction was :

"In Xcode select the bodendemo target and press Cmd+R to build and run the example application."

I dont see the bodendemo target within the Bodendemo folder which is under Examples folder.

What shall I do?

Can't Use In Big Projects Cause of GNU GPL License

I hope to use Boden for my projects but when I searched about GPL, I saw I can't use for commercial purposes with no-sourcecode-puplishing. I don't want to publish my sourcecode when I sell my programs. Can Boden Framework change the license? I want to see Boden as industry standard for C++ world.

How to build a sample application using MSVC?

I really like your approach to developing pure native C++ mobile applications. I searched a lot and finally found Boden.

I have a question, How to build a sample project using MSVC?

Status

Hi. Is this repo up to date?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.