Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SwiftUI で Neumorphism!!!
Search
Ryo Tsuzukihashi
April 27, 2020
Programming
2
1.9k
SwiftUI で Neumorphism!!!
SwiftUIでのNeumorphsim の実装方法
ライブラリとアプリの紹介
Ryo Tsuzukihashi
April 27, 2020
Tweet
Share
More Decks by Ryo Tsuzukihashi
See All by Ryo Tsuzukihashi
SwiftUI Transaction を徹底活用!ZOZOTOWN UI開発での活用事例
tsuzuki817
1
1.2k
レビューを増やしつつ 高評価維持するテクニック
tsuzuki817
3
1.1k
二次元コードを読み取りやすくするために 画面を強制的に明るくするのは もうやめにしませんか?👀
tsuzuki817
0
430
動画だけじゃない!iOS 15のピクチャ・イン・ピクチャを使って好きなUIを表示させよう!
tsuzuki817
3
4.9k
iOS 16からのロック画面Widget争奪戦に備える
tsuzuki817
2
1.1k
Complications and widgets: Reloadedの要約
tsuzuki817
1
1.2k
Speech framework tips
tsuzuki817
1
2.7k
Build complication in SwiftUI の要約
tsuzuki817
0
720
SwiftUIで作りながら学ぶアニメーション インジケーター編
tsuzuki817
0
610
Other Decks in Programming
See All in Programming
Startups on Rails in Past, Present and Future–Irina Nazarova, RailsConf 2025
irinanazarova
0
200
ペアプロ × 生成AI 現場での実践と課題について / generative-ai-in-pair-programming
codmoninc
2
20k
RailsGirls IZUMO スポンサーLT
16bitidol
0
190
顧客の画像データをテラバイト単位で配信する 画像サーバを WebP にした際に起こった課題と その対応策 ~継続的な取り組みを添えて~
takutakahashi
1
310
GitHub Copilot and GitHub Codespaces Hands-on
ymd65536
2
150
Quand Symfony, ApiPlatform, OpenAI et LangChain s'allient pour exploiter vos PDF : de la théorie à la production…
ahmedbhs123
0
210
明示と暗黙 ー PHPとGoの インターフェイスの違いを知る
shimabox
2
590
テスト駆動Kaggle
isax1015
1
510
AIと”コードの評価関数”を共有する / Share the "code evaluation function" with AI
euglena1215
1
180
High-Level Programming Languages in AI Era -Human Thought and Mind-
hayat01sh1da
PRO
0
840
#kanrk08 / 公開版 PicoRubyとマイコンでの自作トレーニング計測装置を用いたワークアウトの理想と現実
bash0c7
1
900
ふつうの技術スタックでアート作品を作ってみる
akira888
1
1.1k
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
462
33k
How GitHub (no longer) Works
holman
314
140k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Balancing Empowerment & Direction
lara
1
440
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Designing Experiences People Love
moore
142
24k
A Modern Web Designer's Workflow
chriscoyier
695
190k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
A Tale of Four Properties
chriscoyier
160
23k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Transcript
3ZP5TV[VLJIBTIJ 4XJGU6*Ͱ/FVNPSQIJTN <0/-*/&>QPUBUPUJQT
w ࣗݾհ w /FVNPSQIJTNͱʁ w 4XJGU6*Ͱͷ࣮ݱํ๏ w ϥΠϒϥϦ࡞Γ·ͨ͠ w /FVNPSQIJTNσβΠϯΛదԠͨ͠ΞϓϦϦϦʔε
ΞδΣϯμ
!UTV[VLJ w :BIPP+"1"/৽ଔ w 1BZ1BZϑϦϚJ04։ൃ w झຯ ݸਓΞϓϦ։ൃ ແਓౡ։ ࣗݾհ
Nuemorphism!!!
/FVNPSQIJTNͱʁ w ৽͍͠ ʮεΩϡʔϞϑΟζϜʯ w ໌Δ͍ӨΛࠨ্ʹɺ҉͍ӨΛӈԼʹ͢Δ w ͳΜ͔৽ͯ͘͠ྑ͍☺ Neumorphism in
user interfacesΑΓ ˠͦͦεΩϡʔϞϑΟζϜͱʁ
εΩϡʔϞϑΟζϜͱʁ w ݱ࣮ͷ࣭ʹࣅͤͯɺ Ϣʔβʹͳ͡Έ͘͢͠ɺ ײతʹૢ࡞Λཧղͤ͞Δ͜ͱ͕Ͱ͖Δ J04 ౾UJQT ΪϦγΞޠͷʮTLFPVTʯ ೖΕ
ͱʮNPSQIÊʯ ܗ ͱݴ͏୯ޠ͔Β࡞ΒΕͨΒ͍͠ɻ
4XJGU6*ͰͲ͏࣮͢Δͷ͔ʁ w $PMPSͷ&YUFOTJPOͰϕʔεͷΧϥʔίʔυΛड͚औΔ $PMPS IFYl$%&#z w ϕʔεͷًͷΈΛม͑ͨͷͰ ӨΛ࡞Δ w
4XJGU)4#ͷΈରԠ w IFY3(#")4-")4# /FVNPSQIJTN 4PGU6* JO6TFSJOUFSGBDFEFTJHO5VUPSJBMΑΓ /FVNPSQIJTNྩ࣌ͷεΩϡʔϞʔϑΟζϜ @touyoubuntu
Ͳ͕ͬͪ/FVNPSQIJTN ౾UJQT ِ/FVNPSQIJTNʹҙʂ /FVNPSQIJTNനͱࠇͷӨΛ͚ͭΕྑ͍ͱݴ͏ Θ͚Ͱແ͍ͷͰ͢ɻ
4XJGU6*ͰͲ͏࣮͢Δͷ͔ʁ TIBEPX DPMPSSBEJVTYZ ;4UBDL\ $PMPS IFY$%&# FEHFT*HOPSJOH4BGF"SFB BMM $JSDMF
pMM $PMPS IFY$%&# GSBNF XJEUI IFJHIU TIBEPX DPMPS$PMPS IFY$%&# EBSLFS$PMPS SBEJVT Y Z TIBEPX DPMPS$PMPS IFY$%&# MJHIUFS$PMPS SBEJVT Y Z ^ ͍͢͝؆୯ʂ ͚ͩͲɺͬͱศརʹ͍ͨ͠ʂ
ϥΠϒϥϦ࡞Γ·ͨ͠ let neumorphism = NeumorphismManager( isDark: false, lightColor: Color(hex: “C1D2EB"),
darkColor: Color(hex: "2C292C") ) let contentView = ContentView() .environmentObject(neumorphism) import NeumorphismUI ZStack { neumorphism.color.edgesIgnoringSafeArea(.all) Circle() .fill(neumorphism.color) .frame(width: 200, height: 200) .neumorphismShadow() } 4DFOF%FMFHBUF $POUFOU7JFX ࣮࣭͜ͷߦʹूʂ
ϥΠϒϥϦ࡞Γ·ͨ͠ extension View { func neumorphismShadow() -> some View {
self.modifier(NeumorphismShadowModifier()) } } 7JFX.PEJpFSͷ func body(content: Self.Content) -> Self.Body func body(content: Content) -> some View { content .shadow(color: darkShadowColor, radius: radius, x: x, y: y) .shadow(color: lightShadowColor, radius: radius, x: -x, y: -y) }
ϥΠϒϥϦ࡞Γ·ͨ͠
/FVNPSQIJTNσβΠϯΛదԠͨ͠ΞϓϦϦϦʔε #FGPSF "GUFS #PPL#BOL
GJO ࢀߟ63- https://note.com/hironobukimura/n/n0431c73714e8 https://uxdesign.cc/neumorphism-in-user-interfaces-b47cef3bf3a6 https://qiita.com/touyoubuntu/items/bf887093ec7265efe201 https://qiita.com/MasasaM_shi/items/4b86622bd95fd48deb76 ࡞ͬͨϥΠϒϥϦ(ϓϧϦΫͬͯ·͢ʂʂʂ) https://github.com/tsuzukihashi/NeumorphismUI ϦϦʔεͨ͠ΞϓϦ(ΞυόΠεͬͯ·͢ʂʂʂ) https://apps.apple.com/jp/developer/ryo-tsudukihashi/id1320583602?l