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.1k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SwiftUI で Neumorphism!!!
SwiftUIでのNeumorphsim の実装方法
ライブラリとアプリの紹介
Ryo Tsuzukihashi
April 27, 2020
More Decks by Ryo Tsuzukihashi
See All by Ryo Tsuzukihashi
GeoJSON×SwiftUI:地図を“美しく”描くための技術
tsuzuki817
0
34
AlarmKitで実現する 新時代のシステム通知
tsuzuki817
0
8.5k
SwiftUI Transaction を徹底活用!ZOZOTOWN UI開発での活用事例
tsuzuki817
1
3.8k
レビューを増やしつつ 高評価維持するテクニック
tsuzuki817
3
1.2k
二次元コードを読み取りやすくするために 画面を強制的に明るくするのは もうやめにしませんか?👀
tsuzuki817
0
500
動画だけじゃない!iOS 15のピクチャ・イン・ピクチャを使って好きなUIを表示させよう!
tsuzuki817
3
6.3k
iOS 16からのロック画面Widget争奪戦に備える
tsuzuki817
2
1.1k
Complications and widgets: Reloadedの要約
tsuzuki817
1
1.5k
Speech framework tips
tsuzuki817
1
3k
Other Decks in Programming
See All in Programming
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
560
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
120
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
34
21k
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
2
450
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
370
Discordを用いたラボオートメーション関連情報収集の自動化
noguhiro2002
0
460
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
contour_gara
0
660
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.3k
VibeCodingからAgenticWorkflowへ
starfish719
0
940
AIに既存システムを理解させる技術 ~レガシーを見捨てないハーネスエンジニアリング入門~
ochtum
0
170
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
230
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
240
Featured
See All Featured
Side Projects
sachag
455
43k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
510
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
290
Thoughts on Productivity
jonyablonski
76
5.3k
Into the Great Unknown - MozCon
thekraken
41
2.7k
Designing for Performance
lara
611
70k
Producing Creativity
orderedlist
PRO
348
40k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Making the Leap to Tech Lead
cromwellryan
135
10k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
My Coaching Mixtape
mlcsv
0
300
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
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