This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-12-13
Channels
- # adventofcode (36)
- # aleph (1)
- # announcements (7)
- # aws (4)
- # babashka (14)
- # beginners (61)
- # calva (79)
- # cider (19)
- # clojure (48)
- # clojure-austin (1)
- # clojure-australia (2)
- # clojure-czech (2)
- # clojure-europe (46)
- # clojure-france (8)
- # clojure-nl (19)
- # clojure-uk (4)
- # clojuredesign-podcast (14)
- # core-logic (42)
- # data-science (3)
- # datalevin (8)
- # datomic (76)
- # events (1)
- # figwheel-main (9)
- # fulcro (6)
- # helix (1)
- # holy-lambda (1)
- # honeysql (2)
- # jobs (2)
- # jobs-discuss (20)
- # leiningen (5)
- # lsp (87)
- # minecraft (11)
- # nextjournal (4)
- # off-topic (17)
- # practicalli (1)
- # reagent (22)
- # reitit (8)
- # releases (3)
- # rum (2)
- # shadow-cljs (18)
- # sql (11)
- # tools-build (5)
- # tools-deps (9)
- # xtdb (20)
Good morning!
I believe some people here do app development, right? All of our devs use iPhones, so I need to order some Android Devices as development-devices only. I have no clue about Android devices, which vendor provides them with updates for some time? Price is not the main aspect, but don’t need to be 1200€ each…
I have a Samsung Galaxy S10 and there are regularly updates from Samsung. I'll ask my kids if their lower grade Samsung get updates as well. HTC only did 2 or 3 updates in the first few years and after the 3rd it became really slow on filled up all the storage (much smaller devices, as my last HTC was from 2014).
a google pixel is worth getting because you will always be bang up-to-date with android version... also they don't come pre-installed with all the vendor junk - i found i prefer the pixel to the iphone i had before it, whereas i hated the samsung (and didn't have enough android nous at that point to get rid of the samsung junk)
that said, at least one person on your team should use a samsung, just because of their market share
Oh, different devices is a very good hint, did not think about that, thanks! Also will look into the Pixels ✌️
And we already started on the emulator, but before we go live with everything, testing it on real hardware would be nice
we have had (a very few, but > 0) bugs which only showed on hardware... sometimes only on specific hardware
there's also things like: https://aws.amazon.com/device-farm/
+1 - i've used browserstack's device farm to investigate device-specific bugs on a couple of occasions
also, imho, it's worth having some of your team using android as their principal device - android UX conventions are a bit different from iOS conventions, and if you are to avoid your app's UX being jarring then you need familiarity with the different platform idioms
e.g. omnipresent back-button on android has no equivalent on iOS
Also good points, thanks 🙂 Currently looking into automated testing on CircleCI. It’s amazing that everything can be done in Clojure, but the the learning curve with that mobile stuff… 🤯
we use circleci - we managed to get automated testing followed by automated deployment to docker, S3, appstore-connect and google-play all running on circleci (using fastlane and the circleci macos executor for the appstore-connect deploy, which was the trickiest). quite a lot of slow, fiddly and painstaking work - but well worth the effort
example: “Where’s Phil?” “He’s gond mooring.” “Ah, but I wanted to go to the chippy!”
TIL
(defn fn-with-attr-map
"Is a fine function"
{:some-meta-here true}
([a b]
(+ a b))
([a b c]
(+ a b c))
{:some-extra-meta true})
=> #user/fn-with-attr-map
(meta #'fn-with-attr-map)
=>
{:some-meta-here true,
:ns #object[clojure.lang.Namespace 0x4d113449 "user"],
:name fn-with-attr-map,
:file "/tmp/form-init4726367283671320145.clj",
:column 1,
:line 1,
:arglists ([a b] [a b c]),
:some-extra-meta true,
:doc "Is a fine function"}
the meta is merged so some care is needed to use different keys in each map(defn fn-with-attr-map
"Is a fine function"
{:some-meta-here true}
([a b]
(+ a b))
([a b c]
(+ a b c))
{:some-meta-here false})
(meta #'fn-with-attr-map)
=>
{:arglists ([a b] [a b c]),
:doc "Is a fine function",
:some-meta-here false,
:line 1,
:column 1,
:file "/tmp/form-init4726367283671320145.clj",
:name fn-with-attr-map,
:ns #object[clojure.lang.Namespace 0x4d113449 "user"]}
I'm trying to use the spec as a cheap way to ensure that the forms are correct so it should be permitted but yeah, it's an oddity
Yeah @raymcdermott when deciding if it was worth https://github.com/clj-kondo/clj-kondo/issues/1429, @borkdude did a grasp search and found that https://github.com/grammarly/omniconf/blob/588e9e9200509f7c6afe1ff5f2bddad7bab5b0a4/src/omniconf/core.clj#L342.
Warning, pre-coffee, but... So technically a docstring can be specified in 4 spots for a single fn (defn ^{:doc "One"} x "Two" {:doc "Three"} ([]) ([x] x) {:doc "Four"})
, as you’ve noticed, meta is merged in reading order left to right.
also, docstrings can be defined using a dynamic expression, to make matters even more interesting :) and: alter-meta! can be used to add it after the fact
And to think that I used to find Ruby confusing.
Good morning!