Giter Site home page Giter Site logo

asobi's Introduction

Asobi

An immersive browser application for iOS, iPadOS, and MacCatalyst.

Download on the App Store for iOS/iPadOS and MacOS

https://apps.apple.com/us/app/asobi/id1589812837

Why did I make this?

I really like to watch and read various forms of media. However, most web browsers have a TON of clutter surrounding the webpage I want to use. With desktop browsers, you can go full screen and not have to worry. However, mobile browsers don't have that luxury for all websites.

Some browsers don't even allow you to hide the URL bar!

Asobi removes all of this clutter by giving you a WebView with a minimalist navigation bar (and swipe gestures). By doing these things, you can have a distraction free browsing experience.

Why not use Safari web clips?

Well, safari web clips are great. They can easily save/load PWAs in an immersive feeling. However, these snippets don't allow for image saving, proper navigation, and sometimes are annoying to fiddle around with.

Initial Setup

When you open the app for the first time, you will see DuckDuckGo (or whatever the fallback webpage to load is). This is because you haven't set a default URL to navigate to on app load!

To set a default URL:

  1. Open settings
  2. Scroll to the bottom option that says Default URL
  3. Enter your favorite URL in the textbox and the site should load immediately, when you press the home button, or when you close/reopen the app

Planned features

Here are features that I have planned for future releases (these are also in the issues)

  • RPC on mac: Used for Discord to show that you're using Asobi
  • Find in page: Adds the ability to search for content in a webpage

Building from source

If you have Xcode, you can build Asobi from source and run it on your device.

There are two branches in the repository:

  • default: The stable branch. Is parallel to the App Store version of Asobi.
  • next: The development branch. May contain breaking changes and is frequently force pushed to.

Xcode builds are ran at your own risk and are not guaranteed to get support in the event of an app crash!

Contribution

If you have issues with the app:

  • Describe the issue in detail
  • If you have a feature request, please indicate it as so. Planned features are in a different section of the README, so be sure to read those before submitting.

If you want to make custom icons for the app:

Developers and Permissions

I try to make comments/commits as detailed as possible, but if you don't understand something, please contact me via Discord or Twitter! I'm always happy to talk!

Creator/Developer: Brian Dashore

Developer Website: kingbri.dev

Developer Discord: kingbri#6666

Join the support discord here (get the king-updates role to access the channel): https://discord.gg/pswt7by

asobi's People

Contributors

bdashore3 avatar

Stargazers

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

Watchers

 avatar

Forkers

garda21

asobi's Issues

Bookmarks

Since this browser is immersive, it's meant to work with PWAs (progressive web apps). Add a bookmarks sheet for users to add their own bookmarks (along with a method to add them)

Store these in app documents since bookmarks can be huge

Rebranding

This is no longer just a cubari app for ios. Rebrand to a new name.

[Feature request] Add option to have the bottom bar auto hide

Triple tapping to hide is a bit of a pain., so it would be cool for the bottom bar with the navi controls to auto-hide after a specified amount of time. Same for the top bar if that ever gets added too. The time could be specified in the settings or auto-hide could be disabled too. Oh and hide on scroll would be another option too.

JavaScript loading

Add the ability to load JavaScript directly in the browser. This will be a simple use of WebKit's userscript API. All browsers that advertise "extensions" are fake or don't actually work with extensions.

Asobi would have to be restarted each time a script is deleted since you can't remove userscripts from the webkit userscript array.

Adblock

Add an adblocker library to stop ads on those stupid manga sites.

Convert webpage zooming to native

A native solution for webpage zooming is possible, but needs lots of work. The JS version is "hacky" but works really well in testing on iOS 15.

v1.0.1 will feature the JS version of zooming, but a later version update should switch to native zooming.

DEPRECATION: iOS 14

Due to a reduced iOS 14 userbase over the past year. Support will be deprecated in versions past v1.5.x. The v1.5 ipa will always be available in the App Store and GitHub once it's released.

Cloud sync

Add CloudKit support for history and bookmarks to allow for syncing across devices

Swift concurrency

Since XCode 13.2 has been released, add swift concurrency paradigms in Asobi's code for futureproofing and readability.

Shareplay support

Possibly add support for shareplay in Asobi. Have to test this out beforehand.

Default URL

Add an option to set a default URL to open. What if the user doesn't want to use cubari but wants an uninterrupted reader to immerse in?

Blob downloads

Cubari uses blob URLs to download manga zips and WKWebView doesn't support that by itself.

Since iOS 14 is targeted, WKDownloadDelegate cannot be used since that's iOS 15 and up. Use a JS solution to download and read the blob data to file.

Adblock lists

Add the ability to translate EasyList blocklists into Safari content blockers

open target=_blank

target=_blank in HTML asks the browser to open links in a new tab. This currently isn't possible due to the WebView being a single page. Fix this with some UIDelegate trickery.

Reader Mode ENHANCEMENT

The ability to turn on reader mode, like in regular browsers, so it will be easier to read articles. This could have the ability to change it from dark to light mode, and the ability to change fonts and font size.

[Feature] URL bar or access to url

ok to clobber everything together again that i had from serenity & so on:

i am sorely missing a url bar or some way of:

  • grabbing the current url in its entirety (clipboard or a selectable text field)
  • browsing to a specific url (url bar or a "go to url" popup)
    • (QoS) a way of seeing history / browsed to urls (as hints while typing an url or as a separate page, related to #5 )

this is due to some sites being indexed on search machines here. this leads to me having to painstakingly find a working link for the page i want to go to, or to make my own horribly looking jump page.

Find in page

Add the ability to find a word/page in a page and navigate the user to it

CoreData

Implement a basic CoreData model

Crashing on press of done button in settings (iOS 14)

A bug fell through!

The blur modifier in the settings view crashes the app on press of the "done" button.

Temporary workaround: Swipe down on the settings menu to dismiss it. Pressing the done button will crash the app on iOS 14 devices.

History

Add a way to view history, possibly from settings or a navigation bar icon in ipad/macOS?

Error popups

Right now, webpage errors show up and just... stay there until the user refreshes the page. Make the error pop up and go back down after some time.

M1 Support

Somehow, this app runs well on the M1 macs. So, optimize this app for ipads and M1 macs.

Maybe a mac catalyst version will be made in the future cuzwhynot

Fix downloading logic

Right now, the file downloading logic is cluttered and hard to keep track of, there are some things to do to make this process streamlined:

  1. Put downloading logic in its own class
  2. Fix how variables are set/cleared
  3. Change how error handling works (maybe put the error description in the view?)

RPC

Add a discord RPC option cuzwhynot

Timeout window

A timeout indicator is a good idea for 2 reasons:

  1. A website is blocked by the user's country/ISP and the user doesn't know
  2. A malformed URL may have been set

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.