Skip to content

Commit 3ab9119

Browse files
committed
Merge branch 'release/v7.3.0'
2 parents d3affd2 + 15760e4 commit 3ab9119

File tree

107 files changed

+5493
-7179
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

107 files changed

+5493
-7179
lines changed

README.md

+282-1
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,288 @@ node -v -> v18.15.0 -> works
254254

255255
### Android-Version:
256256

257-
`ionic cordova platform add [email protected]`
257+
`ionic cordova platform add [email protected]`
258+
`ion[![license](https://img.shields.io/badge/license-GPL%203.0-brightgreen.svg)](https://www.gnu.org/licenses/gpl-3.0.en.html) [![Github All Releases](https://img.shields.io/github/downloads/graphefruit/beanconqueror/total.svg)](https://github.com/graphefruit/beanconqueror/releases) [![GitHub Release Date](https://img.shields.io/github/release-date/graphefruit/beanconqueror.svg)](https://github.com/graphefruit/beanconqueror/releases)
259+
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=graphefruit_Beanconqueror&metric=alert_status)](https://sonarcloud.io/dashboard?id=graphefruit_Beanconqueror)
260+
261+
# Beanconqueror
262+
263+
Beanconqueror - The Ultimate Coffee Companion
264+
265+
You’re a coffee afficiando, and so am I!
266+
Beanconqueror is the product of our shared love of the drink in our cups and in our hearts.
267+
Whether you're just starting out, or are an experienced barista, Beanconqueror will help you get the most out of your coffee.
268+
269+
Optimize your brews:
270+
Beanconqueror offers a wide range of preparation methods, including V60, Aeropress, Espresso, Orea v3, Mokkamaster and more.
271+
Each comes setup ready to go, or you can customize your preparation methods with just the parameters you want to use.
272+
This way, you can get your perfect brew every time.
273+
274+
Keep track of your beans:
275+
Beanconqueror makes it easy to keep track of all your beans.
276+
You can easily scan or import detailed information of roasted coffee from your favourite roasters, or even from your own roasting setup.
277+
It’ll even keep track of your running total of beans so you know when you’re running low.
278+
279+
Track your roasts:
280+
Add all the details for your green beans, roast them in batches tracking the variables you need to to maintain consistency, and automatically transfer your finished roasts to use for brewing.
281+
282+
Dedicated water section:
283+
Beanconqueror also has a dedicated water section where you can add your custom waters to be used in the brew section.
284+
Save all the key information for your water recipes, such as general hardness, sodium, calcium, magnesium, and more.
285+
286+
Flexibility and Convenience:
287+
Beanconqueror is available for both iOS and Android, so you can take it with you wherever you go.
288+
It also supports several languages, including English, German, Spanish, Chinese, and Turkish, and more will be added in the future. Beanconqueror is also Open Source and free to use.
289+
290+
Flow & Pressure Profiling:
291+
Beanconqueror is compatible with a range of bluetooth scales and pressure profile devices, including Decent Scale, Acaia Scales, Felicita Scales, Hiroia Jimmy, Eureka Precisa, Skale2, Smart Espresso Profiler, and Pressensor.
292+
It can even produce graphs to track your brew live and help you repeat your favourite brews more easily.
293+
294+
Track your caffeine consume into Apple Health and have a look there.
295+
296+
Whether you're looking to track your coffee journey, optimise your brews, or simply keep track of your coffee beans, Beanconqueror has everything you need to perfect your brew from green to cup.
297+
298+
##### Follow me
299+
300+
| [Website](https://beanconqueror.com/) | [Instagram](https://www.instagram.com/beanconqueror/) | [Facebook](https://www.facebook.com/Beanconqueror/) |
301+
302+
## Sneak preview
303+
304+
![Beanconqueror gif](demo/Beanconqueror.gif)
305+
306+
## Articles
307+
308+
- German: [iphone-ticker](https://www.iphone-ticker.de/beanconqueror-app-geheimtipp-fuer-espresso-verrueckte-168517/) [wuv](https://www.wuv.de/tech/techtaeglich_super_mario_rast_durch_berlin)
309+
310+
## Threads
311+
312+
- German: [Kaffee-Netz](https://www.kaffee-netz.de/threads/beanconqueror-app.111249)
313+
- English: [Home-Barista](https://www.home-barista.com/knockbox/beanconqueror-app-t68236.html)
314+
- Dutch [tweakers](https://gathering.tweakers.net/forum/list_messages/1635607/44) [koffiepraat](https://www.koffiepraat.nl/forum/viewtopic.php?t=9842)
315+
- Greek: [greekespresso](https://www.greekespresso.gr/forum/viewtopic.php?f=4&t=7251&p=97854&hilit=beanconqueror#p97854)
316+
- Turkish: [kahvekulubu](https://www.kahvekulubu.net/sosyal/threads/kahve-loglama-kayit-oneri-yontem-metodoloji.3483/)
317+
318+
## Rankings
319+
320+
On January 2021, the app got a bit hyped, through german featuring articles, the top rankings because of this you find below.
321+
322+
### Android
323+
324+
Top charts: Eat & Drink - Rank 5
325+
Eat & Drink Ranking - Rank 70
326+
327+
### iOS
328+
329+
Eat & Drink Raking - Rank 36
330+
331+
## Features
332+
333+
Different features are supported by this app, a brief overview you'll find here.
334+
335+
- Add your own beans / grinders / preparation methods
336+
- Record different brew-parameters like:
337+
- grind size
338+
- grind amount
339+
- brew time
340+
- first coffee drip
341+
- images
342+
- etc.
343+
- Manage your own workflow, first grind amount, then grind size? No problem
344+
- Archive old beans / grinders / preparation methods
345+
- Rate your brews
346+
- Cup your brews by SCA
347+
- Own roasting section
348+
- Own water section
349+
- Cup your brews by aromatics or flavors
350+
- Connect smart scales (Decent Scale, Acaia Lunar, Hiroia Jimmy, Felicita)
351+
352+
## Special thanks
353+
354+
- Nicola for giving the app a whole new design.
355+
- Frank for translating the app into spanish.
356+
- [Joan](https://github.com/Jglez3) - for Spanish translation
357+
- [Halil Portakal](https://www.kahvekulubu.net/sosyal/members/portakalhalil.3158/) for Turkish translation
358+
- [Jiageng Ding](https://github.com/JiagengDing) for Chinese translation
359+
- [Mimoja](https://github.com/Mimoja/) For supporting on Decent Scale integration & Eureka Scale support
360+
- [Silas](https://github.com/silasg) - For supporting Hiroia Jimmy Scale
361+
- [Mehalter](https://github.com/mehalter) - For supporting Acaia Scales
362+
- [Mike](https://github.com/mike1808) - For supporting Acaia Scales & DIY Pressure Sensor
363+
- [Myles](https://github.com/mylesagray) - For supporting Thermo Bluetooth Devices
364+
- [Herman](https://github.com/hermanmak) - For supporting Felicita Arc
365+
- [Yannick](https://github.com/randomcoffeesnob) - For supporting DiFluid Microbalance & Smart Chef Scale, BlackCoffee.IO. Also for adding Lokalise
366+
367+
## Getting the App
368+
369+
The App is a cross platform application, running on the ionic framework.
370+
371+
### Android
372+
373+
Download the latest version [here](https://play.google.com/store/apps/details?id=com.beanconqueror.app).
374+
375+
If you don't want to download the app by playstore, just have a look on the [release page](https://github.com/graphefruit/Beanconqueror/releases).
376+
377+
### iOS
378+
379+
Download the latest version [here](https://apps.apple.com/de/app/beanconqueror/id1445297158).
380+
381+
## :sparkling_heart: Support the project
382+
383+
You want to support me, to access more people to explore the world of good coffee
384+
385+
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/paypalme/LarsSaalbach) - Support me once
386+
387+
[![Coffee](https://img.shields.io/badge/Buy_Me_A_Coffee-FFDD00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=white)](https://www.buymeacoffee.com/beanconqueror) - Support me once or often
388+
389+
Or sponsor me via Github
390+
391+
Thanks! :heart:
392+
393+
## Contribution
394+
395+
Before continuing it is important to note that Beanconqueror is open source available.
396+
397+
I welcome pull requests, but you will be required to sign the Beanconqueror CLA before any contributions can be merged.
398+
399+
## Statistics
400+
401+
![Graphefruit github stats](https://github-readme-stats.vercel.app/api?username=graphefruit&theme=dark&repo=Beanconqueror)
402+
403+
![Top Langs](https://github-readme-stats.vercel.app/api/top-langs/?username=graphefruit&theme=dark)
404+
405+
## Third Party Apps
406+
407+
Beanconqueror Universe is growing outside :)
408+
Therefore some users did third party apps, where I don't have any stakes in it.
409+
Important: Beanconqueror doesn't take any warranty here.
410+
411+
Add beans to share directly from a webform:
412+
https://beanstats.vercel.app/beanconqueror/share/create
413+
(Uses the minify-logic of the add.beanl.ink aswell)
414+
415+
Minify your shared bean-link:
416+
https://add.beanl.ink/
417+
418+
Get some more statistics:
419+
https://beanstats.vercel.app/
420+
421+
## Questions
422+
423+
### Why is external storage not supported?
424+
425+
Sadly there are some issues to read/use files from external storage
426+
https://github.com/apache/cordova-plugin-file/issues/350
427+
428+
### Why is image-export functionality not support on iOS?
429+
430+
iOS filesystem is different then on Android, because of this images cannot just be exported.
431+
Thats why just Android is support by now.
432+
433+
### iOS - iCloud-Backup
434+
435+
You can backup Beanconqueror via iCloud, with this you can transfer all data to another device without any loss.
436+
437+
### Android - Backup & Restore
438+
439+
Have a look here: [FAQ](https://beanconqueror.com/faq)
440+
441+
### Analytics
442+
443+
All tracked data/analytics are visible here: ![Website](https://beanconqueror.com/data-tracking.html)
444+
445+
### Which requirements does the app needs?
446+
447+
The app needs access to your filesystem aswell as the camera
448+
449+
- _Filesytem_: Needed to save images which you took on beans/brews etc or exporting your settings. - Outdated after Android 13 changes.
450+
- _Camera_: Needed to take picures or access the photo library to set images for your beans/brews
451+
- _Internet_: NOT NEEDED! But needed if you want to send me some analytics information to make the app better :)
452+
- _GPS_: NOT NEEDED! Activated through settings, saves the brew location
453+
- _Apple Health_: NOT NEEDED! Activated through settings, saves caffeine amount
454+
- _Wake look_: NOT NEEDED! Activated through settings, won't let your phone get into sleep mode while brewing
455+
- _Bluetooth_: NOT NEEDED! Activated for smart scale use.
456+
457+
# Develop on your own
458+
459+
## Development & Building it yourself
460+
461+
If you're not familiar with Ionic or Cordova [read through the introduction](http://ionicframework.com/docs/intro/installation/).
462+
To get started with anything you need [Node.js](https://nodejs.org/en/download/) installed
463+
464+
## Want to check the code quality?
465+
466+
https://sonarcloud.io/dashboard?id=graphefruit_Beanconqueror
467+
468+
## Get Started
469+
470+
npm install -g [email protected]
471+
npm install -g @ionic/cli
472+
npm run prepare
473+
474+
## Build iOS
475+
476+
Always use the .workspace-File to open in Xcode
477+
478+
```
479+
ionic cordova build ios
480+
```
481+
482+
## Build Android
483+
484+
```
485+
ionic cordova build android
486+
```
487+
488+
### Check outdated dependencies
489+
490+
```
491+
npm outdated
492+
```
493+
494+
### Check outdated plugins
495+
496+
```
497+
cordova-check-plugins
498+
```
499+
500+
### NPM-Version
501+
502+
npm -v -> 9.6.4 - works
503+
504+
### NodeJS-Version
505+
506+
node -v -> v18.15.0 -> works
507+
508+
### iOS-Version:
509+
510+
`ionic cordova platform add [email protected]`
511+
512+
### Android-Version:
513+
514+
`ionic cordova platform add [email protected]`
515+
`jdk 17 needed`
516+
517+
You need to remove <config>WRITE_EXTERNAL_STORAGE</config> on the x-socialshare plugin.xml
518+
519+
### Github Page Hosting
520+
521+
https://stackoverflow.com/questions/60357663/do-apple-app-site-association-files-work-with-github-pages-i-e-site-github-io
522+
523+
### Upgrade Ionic if needed:
524+
525+
`npm install @ionic/[email protected]`
526+
-> Or the actual active version
527+
528+
### Installing AAB on your android (mac)
529+
530+
https://stackoverflow.com/questions/50419286/install-android-app-bundle-on-device
531+
brew install bundletool
532+
bundletool build-apks --bundle=./app.aab --output=./app.apks
533+
bundletool install-apks --apks=app.apks
534+
535+
Compile deson't work on android?
536+
Try:
537+
`cordova build android -- --jvmargs='-Xmx2048M -Dkotlin.daemon.jvm.options\="-Xmx2048M" --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED'`
538+
ic cordova platform add [email protected]`
258539

259540
### Github Page Hosting
260541

config.xml

+10-15
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version='1.0' encoding='utf-8'?>
2-
<widget id="com.beanconqueror.app" version="7.2.1" xmlns="http://www.w3.org/ns/widgets">
2+
<widget id="com.beanconqueror.app" version="7.3.0" xmlns="http://www.w3.org/ns/widgets">
33
<name>Beanconqueror</name>
44
<description />
55
<author email="[email protected]" href="https://github.com/graphefruit/beanconqueror">Lars Saalbach</author>
@@ -16,8 +16,9 @@
1616
<allow-navigation href="*" />
1717
<preference name="ScrollEnabled" value="false" />
1818
<preference name="android-minSdkVersion" value="24" />
19-
<preference name="android-targetSdkVersion" value="33" />
20-
<preference name="android-compileSdkVersion" value="33" />
19+
<preference name="android-targetSdkVersion" value="34" />
20+
<preference name="android-compileSdkVersion" value="34" />
21+
<preference name="android-buildToolsVersion" value="34.0.0" />
2122
<preference name="SplashMaintainAspectRatio" value="true" />
2223
<preference name="FadeSplashScreenDuration" value="300" />
2324
<preference name="SplashShowOnlyFirstTime" value="false" />
@@ -30,6 +31,11 @@
3031
<preference name="AndroidExtraFilesystems" value="files,files-external,documents,cache,cache-external" />
3132
<preference name="iosExtraFilesystems" value="library,library-nosync,documents,documents-nosync,cache,bundle,root" />
3233
<platform name="android">
34+
<preference name="GradleVersion" value="8.7" />
35+
<preference name="AndroidGradlePluginVersion" value="8.3.0" />
36+
<preference name="GradlePluginKotlinVersion" value="1.9.24" />
37+
<preference name="GradlePluginKotlinEnabled" value="true" />
38+
<preference name="GradlePluginKotlinCodeStyle" value="official" />
3339
<edit-file mode="merge" parent="/resources" target="app/src/main/res/values/themes.xml">
3440
<style name="Theme.App.SplashScreen" parent="Theme.SplashScreen">
3541
<item name="windowSplashScreenBackground">#FFFFFF</item>
@@ -92,18 +98,7 @@
9298
<icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" />
9399
<icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" />
94100
<hook src="plugins/cordova-plugin-ble-central/stripDuplicatePermissions.js" type="after_prepare" />
95-
<splash density="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png" />
96-
<splash density="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png" />
97-
<splash density="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png" />
98-
<splash density="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png" />
99-
<splash density="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png" />
100-
<splash density="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.png" />
101-
<splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" />
102-
<splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" />
103-
<splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" />
104-
<splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" />
105-
<splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" />
106-
<splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" />
101+
<hook src="hooks/stripAndroidPermissions.js" type="after_prepare" />
107102
</platform>
108103
<platform name="ios">
109104
<privacy-manifest>

hooks/stripAndroidPermissions.js

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
const FS = require('fs');
2+
const Path = require('path');
3+
4+
let path = Path.resolve('platforms/android/app/src/main/AndroidManifest.xml');
5+
6+
let manifest = FS.readFileSync(path, {
7+
encoding: 'utf-8',
8+
});
9+
10+
// Strips ALL occurrences of <uses-permission android:name="androoid.permission.WRITE_EXTERNAL_STORAGE" />
11+
// If you have several conflicts (of different maxSDKVersion, or in different formats) then the regex
12+
// may need to be adjusted, or repeated for each format.
13+
manifest = manifest.replace(
14+
/^(\s)+<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" \/>$/gm,
15+
''
16+
);
17+
manifest = manifest.replace(
18+
/^(\s)+<uses-permission android:name="android.permission.BODY_SENSORS" \/>$/gm,
19+
''
20+
);
21+
manifest = manifest.replace(
22+
/^(\s)+<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" \/>$/gm,
23+
''
24+
);
25+
26+
FS.writeFileSync(path, manifest);

0 commit comments

Comments
 (0)