Git Product home page Git Product logo

codeapp's Introduction

Code App

Bringing desktop-like editing experience to iPad, available on App Store and TestFlight.

Code App Screenshot

About the repository

This repository contains the source code of the app. We also work on issues, listen to your feedback and publish our development plan here.

Documentation

See code.thebaselab.com

The Plan

Use VS Code as a design template while providing key functionalities with monaco-editor and native code:

  • Version Control (Git clone, commits, diff editor, push, pull and gutter indicator) ✅
  • Embeded terminal (70+ commands avaliable) ✅
  • Local web development environment (Node + PHP) ✅
  • Built in Python runtime ✅
  • C/C++ Runtime with WebAssembly (with clang) ✅
  • Local Java (OpenJDK) ✅
  • SSH Support ✅
  • LSP support 🏃

Building the project

  1. git clone https://github.com/thebaselab/codeapp
  2. ./downloadFrameworks.sh
  3. Open Code.xcodeproj
  4. Switch to CodeUI target if you wish to run the app on a simulator
  5. Click build

The source code of the built-in languages are hosted on these repositories.

Language Repository
Python 3.9.2 cpython
Clang 14.0.0 llvm-project
PHP 8.3.2 php-src
Node.js 18.19.0 nodejs-mobile
OpenJDK 8 android-openjdk-build-multiarch

codeapp's People

Contributors

benwu030 avatar bummoblizard avatar demonlms avatar fuchami avatar goudronviande24 avatar graphemecluster avatar mister-hope avatar mkinitcpio avatar mson0129 avatar zxkmm 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

codeapp's Issues

Slow Git clone

Cloning a repository is pretty slow generally, especially when the repository has a large amount of files. At times, it would even raise error and unable to clone large repositories.

This renders the app unusable for large projects.

Repos generated in 1.1.7 sometimes are not compatible with 1.1.8

It will not let me push my commits from local remote to my public GitHub repo. It says there are uncommitted changes, which I can see, but all it is, is a blank info symbol without text or a title, which when clicked on says something about the OID missing.

TestFlight Beta - Crashing

I just installed The TestFlight update on my iPad, it crashed as soon as I opened it. I thought I should inform you about this.

Optimise the interface on iPhone

Code App uses VS Code as a design template. While the interface is clean and efficient when used on an iPad, it's not really optimised for iPhones where screen space is limited. We could either drop support for iPhones, or come up with optimisations or a whole new interface for smaller screens.

Cannot perform text selection with touch

Currently, Monaco Editor, thus Code App does not support touch interaction for text selection. It's a bummer for users who wants to copy text without a physical mouse or keyboard.

Possible solution: Mimic native text selection by conforming the editor view to UITextInput protocol.

Current workaround: Select text by sliding your finger across the line numbers gutter area, then use the buttons on the keyboard toolbars to copy and paste text.

Terminal issue on iPhone

Terminal doesn't seem to be working on my iPhone 11 Pro Max. When I tap on the tab, labelled Terminal, then tap again in the content area therein, in order to invoke the keyboard used to type commands into terminal, nothing happens. The keyboard is not invoked, and thus nothing can be typed into the terminal.

Syntax highlighting for more languages + TextMate migration

With the migration to TextMate syntaxes, support for extra languages can be conveniently added. Plus, syntax highlighting for existing languages will be richer, matching desktop VS Code's behaviour. Here's is a comparison between the existing behaviour and the updated version with TextMate syntaxes.

image

image

Here's a list of language support requests we received previously from email, App Store review and GitHub Issues:

  • Perl
  • Fortran
  • Dart
  • Matlab
  • COBOL

March's Update (Node.js + Python) now available on App Store

Hello! 1.2.0 update is now available for testing on App Store! You can now run Python or Javascript script locally with package managers support. Here's what changed.

A guide on using Node.js:
https://github.com/thebaselab/codeapp/blob/main/documentation/working-with-nodejs.md

You could also submit issues on GitHub or TestFlight.

Changelog

v1.2.0 (March 2021)

  • Node.js runtime
    • Run Javascript offline
    • Install npm modules
    • Install Javascript commands globally (tsc, prettier etc.)
    • New terminal commands: npm, npx, node
  • Python 3.9.2 runtime
    • Run Python offline
    • Install modules with pip
    • Install Python commands globally
    • New terminal commands: pip, python, python3
  • Editor
    • Problems tab
    • New Markdown style
    • Syntax highlighting for Vue
    • Smooth Scrolling option for devices with high refresh rate
  • Terminal
    • Now supports light colour scheme
  • File exploerer
    • Reduced row height
  • Bug fixes

Terminal does not work

Hi, just letting you know since the latest update I am not able to use terminal to install npm or python extensions. The terminal is just a grey area with not ability to click and type etc. Also local python script do not compile. External python script 2.7 work fine through your server.

git clone error

after git clone,
—.git/object
There are many hexadecimal named folders under this path, but there are no files I need

1.2.1 Patch released

Terminal should be usable now. Again, I am terribly sorry for the bug that presents in 1.2.0.

Plugins (Like VSC)

I would like to see community supported plugins, like VSCode, but not from there, I mean new ones from scratch. It would really help with features the community would like to see, but the devs don’t have time or are not ready to add/support in the recent updates.

February 2021 Update

February 2021 Update

We will be releasing February's update this week! It includes fixes on Git support and other issues as well as new features. Here are the changes included:

  • Text Editor
    • Migration to TextMate grammar (More advanced syntax highlighting) #11
    • Support for more languages (Groovy, HLSL, Log, Makefile, Shaderlab, Fortran, Matlab) #11 #10
    • Fixed a bug where the editor sometimes does not to pointer clicks #9

Python:

image

TypeScript:

image

  • Version Control
    • Improved performance and reliability #24 #19 #15 #14
    • Staging changes
    • Switching branch #17
    • Detached head mode
    • Revert changes
    • Git fetch & Ahead-behind indicator

image

image

  • Language Compiling
    • Support for Groovy
  • Built-in Terminal
    • Improved compatibility with SSH command #12
    • Bug fixes
  • Explorer
    • Folding states for directories are now preserved #8
    • Ability to expand folder by tapping on the folder name
  • Other
    • Width of sidebar is now reduced
    • Theme is now temporaily removed to support the new syntax highlighting system
    • JSON Intellisense is temporaily disabled

Source control does not recognise paths with spaces in it

I cloned a Gitlab repo of mine, and made some changes in a file and saved. I cannot stage the changes I made to this file. Going to the Source control tab only shows the "Changes" section. Tapping (or clicking with mouse) on the "+" button on the file does not do anything. Tapping the filename itself prints out a "This change is not indexed" popup in the bottom right corner.

I have attached some screenshots of what's happening.

24BEF64F-031F-42AC-B6FB-698192530F0D

File systems other than on my iPad and iCloud are not available

The other File systems such as google Drive or OneDrive are not available for us to choose the workspace folder from. I think that that many people here do not store their code on their local machines, instead they use the cloud services for i ntegration. It would be great if you add the feature.
Screenshot 2021-02-18 at 8 06 42 AM

Shortcuts Integration

It would be great if Code App could integrate with Shortcuts. For Example if we would like to run or open as a workspace folder in This App.

Refreshing Local Repo

When I refresh to show updated/created files in the unstashed changes section in Source Control, it sometimes will only do it once, maybe not even work at all, then when I swipe out the app after finishing 50+ file changes in many different files, it “discards” them, or should I say, “never saves” them. I think this is an issue with the git remote software in the app. Thanks for the help!

Explorer doesn't remember folder expansion states

As is in the tittle.

OutlineGroup in SwiftUI, which we currently use in the explorer, does not provide a way to save its expansion states like DisclosureGroup do. As a result, I am unable to find a way to implement this without building a custom OutlineGroup like UI component for displaying recursive data. Alternatively, we could wait for an update from SwiftUI.

Trackpad / Mouse scrolling not supported

With the adoption of Monaco Editor, trackpad and mouse scrolling are no longer supported.

Upon investigation, the issue originates from Monaco Editor and mobile Safari. In fact, if you try to use online IDE that implements Monaco Editor, for example, Repl.it and codespaces, the same issue arises. Under the hood, this is caused by a bug in webkit, where the browser of iPadOS does not fire 'wheel' event for Monaco Editor to simulate scroll interactions.

Fortunately, a patch has landed in upstream WebKit recently. (https://trac.webkit.org/changeset/270712/webkit)
Although it's unlikely the patch will be included in iPadOS 14.3 (I have yet to test it). It's only a matter of time before this issue is fixed.

Can’t detect modified files

I modified a file in my local repo, but Code can’t detect it, and refused to commit.

The modified file is a GitHub Actions file, which is located in a hidden folder /.github/workflows/CI.yml.

Advice and Question

Dear @bummoblizard,
What language do you use to program this application? If it is Swift, I can help, as well as transferring the app to Android, with Java. Just let me know if you need/want any extra help from me. Also, I noticed there are a lot of bugs in a short amount of time since the most recent update. I would suggest using Apple' bug testing program, which I don’t remember the app name, if iirc it is Test (something). Then I would send out testing invitations to certain people who you know would use it and give constructive feedback. If you need someone to help start bug testing/beta testing, just let me know. Try to get almost every bug squashed (more than this most recent update), and then release the update, even if it goes against your timeframe. Just some feedback on how the app versions work and happen, and how to prevent this many bugs. No offense meant, as well. Thanks for understanding!

Disclaimer: This was put here as a separate issue, just in case you didn’t see it in #32.

Best Wishes,
Lukas Batema

Python Version

The most recent Python compiler is at version 3.7.7, while the most recent public version available for download online is Python 3.9.0

User interaction when running code

At the moment, stdin is submitted alongside the program source code. This means user interaction with the program is not possible. As a well-requested feature, I'll open the issue.

Typo Source control

On Source control tab there is typo in Initialize Repository button. Version 1.1.7

Overflow in the terminal

When the terminal is open there is no way (or it appears that way to me) to scroll down to bottom of the content if it goes off the screen. Either scrollbars or a "clear" command on the terminal would be greatly appreciated!

UI glitch on iPhone and git fetch issue

Although it does say the fetch did succeed, it actually doesn’t, because the changes that were made on GitHub, are not visible, as well as the number next to the down arrow didn’t change, as well as the locals/remote repo isn’t changed at all, it stays the same as it was before the “fetch”. I would recommend adding back the merge feature as well. It also prevents me from pushing changes. Notice the highlighted part on the bottom bar on the first image, it still shows 6 GitHub commits, even though it says it successfully fetched them.
EAB3CA50-D9CB-48BB-AF72-BDCE5B6DBEA3
9108E7E7-F3D4-45C4-9B00-BD5AFA39E5CB

Also, on the very top left corner, there is a little black rectangle, on the gray bar. I don’t know if it is the style I use, but it shouldn’t be happening.

One more thing, I noticed there are a lot of bugs in a short amount of time since the most recent update. I would suggest using Apple' bug testing program, which I don’t remember the app name, if iirc it is Test (something). Then I would send out testing invitations to certain people who you know would use it and give constructive feedback. If you need someone to help start bug testing/beta testing, just let me know. Try to get almost every bug squashed (more than this most recent update), and then release the update, even if it goes against your timeframe. Just some feedback on how the app versions work and happen, and how to prevent this many bugs. No offense meant, as well. Thanks for understanding!

Toggle Sidebar

Toggling side to collapse a folder does not trigger sometimes unless you right click and then you can interact with the toggle feature.

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.