Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Swift愛好会 #28
Search
Satoru Ohguchi
February 18, 2018
Technology
590
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Swift愛好会 #28
Satoru Ohguchi
February 18, 2018
Transcript
99 slides
J04ΞϓϦ։ൃͷॳา SwiftѪձ #28
ΨΠμϯε • SwiftѪձͷ৽͍͠औΓΈͱͯ͠ɺॳ৺ऀϋϯ ζΦϯΛͬͯΈΑ͏ͱ͍͏͜ͱʹͳΓ·ͨ͠ɻ • ༗ࢤʹΑΔϋϯζΦϯͱͳΓ·͢ͷͰɺࢸΒͳ͍ ͳͲ͋Δ͔͠Ε·ͤΜɻ͝ڠྗɺ͝ཧղ͍ͨͩ ͖·͢Α͏͓ئ͍͍ͨ͠·͢ɻ
ࣗݾհ • ࢘ձਐߦͷհ • Reiko Goto(@burakon) • Satoru Ohguchi(@o_chicchi) •
ϝϯλʔਞͷհ • ҰݴͣͭࣗݾհԼ͍͞ɻ
͡Ίʹ • ຊͷਐΊํ • αϯϓϧϓϩάϥϜΛ͢Δ͜ͱΛΰʔϧͱ͠·͢ɻ • ࠷ॳʹ֓ཁͳͲΛઆ໌͠·͢ɻ • ͻͱ·ͱ·Γຖʹઆ໌ɺ࣮ࡍͬͯ͘ͷ܁Γฦ͠Ͱ͢ɻ •
ਵ࣌ɺ࣭͍ͯͩ͘͠͞ɻ • ૢ࡞ͷ͔Βͳ͍ͳͲɺϝϯλʔʹϔϧϓΛٻΊͯ Լ͍͞ɻ • άϧʔϓͰॿ͚߹͍ͳ͕ΒਐΊ͍͚ͯͨͩΔ͜ͱظ͠ ͍ͯ·͢ɻ
άϧʔϓ୯ҐͰࣗݾհ • ໊͓લɺχοΫωʔϜͰΑ͍Ͱ͢ɻ • ֶੜ? ࣾձਓ? • ;ͩΜ͍ͬͯΔ͜ͱ(ࣄͷ͜ͱͱ͔ɺઐ߈ͷ͜ ͱͱ͔) •
SwiftҎ֎ͷݴޠͷܦݧͱɺSwiftͷܦݧ
ࢀՃऀΞϯέʔτ(1) •ֶੜͰ͋Δ •ए͍ࣾձਓͰ͋Δ •͏ए͘ͳ͍ࣾձਓͰ͋Δ •·ͩ·ͩݩؾͳدΓͰ͋Δ
ࢀՃऀΞϯέʔτ(2) • ࢲɺ·ͬͨ͘ͷॳ৺ऀͰɺMacΛ৮Δͷɺϓ ϩάϥϜ͢ΔͷॳΊͯͩɻ(͓͓ΉͶ1ະຬ) • ଞͷݴޠͰͷϓϩάϥϛϯάܦݧ͋Δ(ઙͯ͘ Մ)ɺiOSͷϓϩάϥϜΛॻ͍ͯΈ͍͔ͨΒɺࠓ དྷͯΈͨɻ • ΞϓϦΛ࡞ͬͯΈͨͯ͘ɺॻ੶ͳͲͰֶश͍ͯ͠
Δ͕ɺͳ͔ͳ͔शಘʹࢸΒͣɺۤ࿑͍ͯ͠Δɻ
ࢀՃऀΞϯέʔτ(3) •Apple Developer Program ʹ •ࢀՃ͍ͯ͠Δ(ొ͍ͯ͠Δ) •ࢀՃ͍ͯ͠ͳ͍(ొ͍ͯ͠ͳ͍)
͞ͳ͍͜ͱ • Swiftͷϓϩάϥϛϯάগ͚͔ͩ͠͠Γ·ͤΜɻ • Storyboard গ͚͔ͩ͠͠Γ·ͤΜɻ • ڽͬͨϨΠΞτɺਂ͍ϓϩάϥϛϯάʹ͍ͭͯ ѻ͍·ͤΜɻ •
ઃܭख๏ͱ͍ͬͨ͜ͱʹ৮Ε·ͤΜɻςετपล ͷίʔυ৮Ε·ͤΜɻ • ΞϓϦͷϦϦʔεʹ͚ͨొํ๏ɺసૹํ๏ʹͭ ͍ͯ৮Ε·ͤΜɻ
ϓϩάϥϛϯάֶशʹ͍ͭͯ
ϓϩάϥϜΛश͏ಈػ • Կ͔࡞ͬͯΈ͍ͨαʔϏεɺΞϓϦ͕͋ͬͯɺͦ ͷͨΊʹֶश͢Δɻ • ब৬ɺస৬׆ಈʹ༗ར͔ͩΒɺֶशͯ͠༗རʹਐ Ί͍ͨɻ • ͰɺαʔϏεΞϓϦΛͤ͞Δ͜ͱ͕ॏཁ ͰɺʮJavaΛश͍ͬͯ·͢ʯͱ͍͏ΑΓɺՌ͕
͋Δ΄͏͕Α͍ɻ
ϓϩάϥϛϯάݴޠʹ͍ͭͯ • Ͳͷݴޠ͔ΒೖͬͯɺͲΕͰ͍͍ͱࢥ͏ɻͰ ɺࠓɺSwiftɻSwift ਪͰ͖ΔɺΑ͘Ͱ͖ ͨݴޠͩͱࢥ͏ɻ • ಘҙͳݴޠΛɺ1ͭ࣋ͭ͜ͱ͕ॏཁɻಘҙͳݴޠΛ ෳʹͰ͖ͨΒɺͰ͖Δ͜ͱ͕͕Δɻ •
1ͭͷݴޠΛशಘͰ͖Εɺଞͷݴޠʹ͍͛ͯ͘ ͜ͱɺͦΜͳʹ͘͠ͳ͍ɻ
ϓϩάϥϛϯάֶशͷίπ • ίϐʔ&ϖʔετ͚ͩͰɺͳ͔ͳֶ͔श͍͠ɻ • ࣮ࡍʹɺλΠϓͯ͠ɺಈ͖Λ֬ೝ͠ͳ͕ΒΔͷ͕ Α͍ɻ • ͳͥɺ͜͏ಈ͘ͷ͔ɺϩδοΫ͕Ͳ͏ͳ͍ͬͯΔͷ ͔ɺཧղͯ͠ਐΊΔ͜ͱ͕ॏཁɻࢴʹॻ͍ͯΈͨΓɺ ཧͯ͠ΈͨΓɻ
• ޠֶͱҰॹͰগͣͭ͠ͰຖɺຊಡΜͩΓɺ৮Ε ͨΓ͢Δ͜ͱ͕ਐาʹܨ͕Δɻ
ݸਓతʹ… • ϓϩάϥϛϯάɺࠓޙɺখֶੜͷΧϦΩϡϥϜʹ ೖ͖͕͍ͬͯͯͬͯ͘͜ͱ͕༧͞ΕΔɻجຊ ࣝͷྖҬʹۙ͘ͳ͍ͬͯ͘ͱࢥ͏ɻ • ΞϓϦΛ࡞ͬͨΓɺશੈքʹϦϦʔεͰ͖ͨΓ͢Δ Έ໘ന͍ɻपล͍ࣝΖ͍ΖඞཁͰ͕͢ɺ νϟϨϯδ͢ΔՁ͋Γ·͢ɻ •
ੲ͔Βɺίϯϐϡʔλʔ͕͖ͳਓͱͯ͠ɺίϯ ϐϡʔλʔϓϩάϥϛϯά͕ɺ͖ʹͳͬͯ͘Ε Δਓ͕ҰਓͰ૿͑ͨΒخ͍͠ɻ
ΞϓϦΛϦϦʔε͢Δ্Ͱͷ੍
ΞϓϦΛϦϦʔε͢Δ্Ͱͷ੍ࣄ߲(1) •ϦϦʔεʹ৹͕ࠪ͋Γ·͢ɻ •ΨΠυϥΠϯ •https://developer.apple.com/app-store/review/guidelines/jp/ • ܦݧଇ • ؆୯ͳΞϓϦ৹ࠪʹ௨Βͳ͍͜ͱ͕͋Γ·͢ɻ • SNSͰͷγΣΞػೳΛ͚ΔͳͲɺ͕ඞཁͰ͢ɻ
• ஶ࡞ݖ • ը૾ԻָͳͲΛ༻͢Δ߹ɺݖརʹҙ͢Δඞཁ͕͋Γ·͢ɻ • ΞϓϦͷλΠτϧؚ໊ΊͯؾΛ͚ͭΔඞཁ͕͋Γ·͢ɻ
ΞϓϦΛϦϦʔε͢Δ্Ͱͷ੍ࣄ߲(2) • iOS11͚ʹ࡞Δ߹ɺiOS11͕αϙʔτ͞Ε͍ͯ ΔશͯͰਖ਼ৗʹಈ࡞͢Δඞཁ͕͋Γ·͢ɻ • ྫ͑ɺiPhone5SҎ্Ͱಈ࡞͢Δඞཁ͕͋Γ·͢ɻը໘ αΠζશͯαϙʔτ͞ΕΔඞཁ͕͋Γ·͢ɻ • Apple Developer
Program ͷࢀՃ͕ඞཁͰ͢ɻ • ؒͰɺ1ສԁલޙ͔͔Γ·͕͢ɺϓϩάϥϜͷࢀՃ͕ ඞཁͰ͢ɻ
࡞ΔϓϩάϥϜͷΞΠσΟΞ • ϓϩάϥϜΞΠσΟΞɺϦϦʔεͷཁ݅౿·͑ ͯɺߟ͑ͨ΄͏͕͍͍ͱࢥ͏ɻ • खॻ͖ͰɺΞΠσΟΞΛॻ͍ͯΈͯɺͦͷ͋ͱɺ ը໘ભҠΛ૾ͯ͠Έͯɺ؆୯ͳϑϩʔΛॻ͍ͯɺ ϓϩάϥϜʹམͱͤΔ͔ߟ͑Δͱɺ͏·͍͖͘͢ ͍ɻ •
ΞΠσΟΞͷ࣌Ͱɺܦݧऀʹฉ͘ͷΞϦͩͱ ࢥ͏ɻੋඇɺࠓճͷͳͲΛར༻ͯ͠Լ͍͞ɻ
Xcodeͷॳظઃఆ
XcodeΛىಈ͢Δ • ΞϓϦέʔγϣϯ → Xcode ͱબΜͰىಈ
ઃఆը໘Λબ w 9DPEFˠ1SFGFSFODFTͱબΜͰىಈ
Xcodeͷॳظઃఆ(1) • Accounts Λબ͢Δɻ
Xcodeͷॳظઃఆ(1) • ࠨԼʹ͋ΔʮʴʯΛબ͢Δɻ
Xcodeͷॳظઃఆ(1) • Apple ID Λબ͠ɺContinue Λબ͢Δɻ
Xcodeͷॳظઃఆ(1) • AppleIDͷΞΧϯτΛઃఆ͠ɺSign In Λબ͢Δɻ
Xcodeͷॳظઃఆ(2) •ߦදࣔΛग़͢ Text Editing ͷதͷ Line Number Λબ͢Δɻ
Xcodeͷॳظઃఆ(3) w %PVCMF$MJDL/BWJHBUJPOΛઃఆ͢Δɻ
Hello World Λग़ͯ͠ΈΔ
ϓϩδΣΫτΛ࡞͢Δ • File → New → Project
ΞϓϦͷλΠϓΛબ͢Δ • Single View App → Next Λબ
ϓϩδΣΫτͷඞཁࣄ߲Λઃఆ •ҎԼͷΑ͏ʹهೖͯ͠ɺNext Λબɻ
อઌΛબ • อॴΛઃఆͯ͠ɺʮCreateʯΛબ͢Δɻ
Storyboard Λબ •Xcode͕։͘ͷͰɺStoryboard Λબ
SafeAreaΛબ •Safe Area Λબ͢Δ
Hello World ͷϥϕϧΛஔ͢Δ • Xcode ͷӈԼʹ͋Δը໘ͷը໘Ͱɺʮshow the object libraryʯΛબ •
Filter ʹ Label ͱೖྗ • Label ͕දࣔ͞ΕΔ͜ͱΛ֬ೝ
Hello World ͷϥϕϧΛஔ͢Δ
Hello World ʹจࣈྻΛॻ͖͑Δ
੍Λઃఆ͢Δ
ԼهͷΑ͏ʹͳ͍ͬͯΔ͜ͱΛ֬ೝ
Ϗϧυ࣮ͯ͠ߦͯ͠ΈΔ • iPhoneX ͷγϛϡϨʔλʔΛબΜͰʮ⾣ʯΛબ͢Δɻ
Playground Λىಈ͢Δ
Playground • ༁͢Δͱɺ༡ͼͱ͍͏ҙຯͰɺίʔυͷ࿅श Λ͢Δʹ࠷దͳπʔϧɻ • Swift ͷίʔυΛͪΐͬͱ֬ೝ͍ͨ͠ͱ͍͏࣌ʹ ɺ׆༻͠·͠ΐ͏ɻ
ىಈํ๏ • File → New → Playground
ىಈํ๏ •iOS → Blank → Next ͱબ͢Δɻ
ىಈํ๏ •อॴΛઃఆͯ͠ɺʮCreateʯΛબ
ىಈํ๏ • ҎԼͷΑ͏ʹىಈ͢Δ
Swift ͷओͳॻ͖ํ
มͱఆ • ม • ΛهԱ͢ΔͨΊͷശͷΑ͏ͳͷ • ఆ • ΛهԱ͢ΔശͷΑ͏ͳͷɺ͋ͱ͔ΒมߋͰ͖ͳ͍ มͷܕʹɺओʹɺ
ҎԼͷΑ͏ͳͷ͕͋Δɻ Intܕ Floatܕ Doubleܕ Stringܕ Boolܕ
ܕਪ •ϓϩάϥϜͷจ຺͔Β҉తʹܕΛܾఆͯ͘͠ΕΔ •ܕΛΈ͍ͨͱ͖ɺ type(of: ม໊)
มܕͰؾΛ͚ͭΔϙΠϯτ • ఆͷ࠶ೖͰ͖ͳ͍ • let Λͬͨͷ࠶ೖͰ͖ͳ͍ • ҧ͏ܕͷೖΕΔ͜ͱ͕Ͱ͖ͳ͍
Optional • มͷ͕ɺnil Ͱ͋Δ͜ͱͱɺจࣈྻͷ ”” ɺม ͕ɺ0 Ͱ͋Δ͜ͱҟͳΔɻ • SwiftͰɺOptionalܕͱͯ͠ɺ”?”Λͬͯ໌ࣔ͢Δɻ
• ໌֬ͳཧ༝͕͋Δͱ͖ͷΈ͍·͠ΐ͏ɻ 8 /774 5007 32 2 010 07.2
ྻ •ҎԼͷΑ͏ʹهड़͢Δ •ΛॳظԽ͢Δ߹ɺ[] ͷؒʹΛฒΔ
ؔ •ఆٛํ๏ •ίʔυྫ . ( 1 : 2 ,)-., >
Ϋϥε w ҎԼʹαϯϓϧΛࣔ͢
ܧঝ •ҎԼʹαϯϓϧΛࣔ͠·͢ɻ •class Ϋϥε: εʔύʔΫϥε { } ͷΑ͏ʹهड़͢ Δɻ
·ͱΊ •࣌ؒͷؔͰɺऔΓ্͍͛ͯͳ͍͜ͱ͕ଟ͋Γ·͢ɻ • Switchจ • forจ • whileจ • ߏମ
• είʔϓ • Ψʔυ • ϓϩτίϧ •…ͳͲͳͲ •Swiftͷॻ੶ɺAppleͷυΩϡϝϯτΛੋඇಡΜͰΈͯԼ͍͞ɻ
ΫΠζΞϓϦ
ૉࡐͷμϯϩʔυ • ΫΠζͷͷcsvٴͼɺը૾Λ༻ҙͨ͠ͷͰɺμ ϯϩʔυ͓ئ͍͠·͢ɻ
Xcode Ͱ৽͍͠ϓϩδΣΫτΛ։͘
શମͷྲྀΕͷઆ໌ • ࠓճͷΞϓϦͷશମతͳྲྀΕΛҎԼʹࣔ͠·͢ɻ ? ?
4UPSZ#PBSE
ը໘ͷૉࡐΛొ͢Δ •ը໘ͷૉࡐΛஔ͢Δɻ
ViewControllerͷஔ • StoryBoard Λબͯ͠ɺදࣔ͠ɺViewController Λஔ͢Δɻ
֤ը໘༻ͷίʔυΛ४උ w 'JMFΛબ͠·͢ɻ
֤ը໘༻ͷίʔυΛ४උ w $PDPB5PVDIΛબ͢Δ
w ΫϥεΛࢦఆ͠·͢ɻ2VJ[7JFX$POUSPMMFSͱࢦఆ͢Δɻ ֤ը໘༻ͷίʔυΛ४උ
֤ը໘༻ͷίʔυΛ४උ w ʮ$SFBUFʯΛબ͠·͢ɻ
֤ը໘༻ͷίʔυΛ४උ w ಉ༷ʹɺ3FTVMU7JFX$POUSPMMFSΛ࡞͠·͢ɻ
$VTUPN$MBTTͷࢦఆ w ֤ετʔϦʔϘʔυʹࢦఆ͠·͢ɻ
$VTUPN$MBTTͷࢦఆ w ಉ༷ʹɺ3FTVMU7JFX$POUSPMMFSࢦఆ
෦ஔ
શମਤ
τοϓը໘ w *NBHF7JFXͱ#VUUPOΛஔ͠·͢ɻ
ΫΠζදࣔը໘ w ҎԼஔ͠·͢ɻ w ϥϕϧ͇ w Ϙλϯ͇ w UBHΛઃఆ w
*NBHF7JFXº
݁Ռදࣔը໘ w ҎԼΛஔ͠·͢ɻ w *NBHF7JFX w ϥϕϧ w Ϙλϯ
֤ը໘ͷඥ͚ w ελʔτϘλϯ͔Βɺ 2VJ[7JFX$POUSPMMFS Ή͔ͬͯɺTFHVF Λઃఆ͢Δɻ
ը໘ͱͷඥ͚ w 2VJ[7JFX$POUSPMMFS ͔Βɺ 3FTVMU7JFX$POUSPMMFS ʹ͔ͬͯɺTFHVF Λઃఆ͢Δɻ
ը໘ͱͷඥ͚ w *EFOUJpFSΛఆٛ͢Δ
2VJ[7JFX$POUSPMMFSͷιʔεͱͷඥ͚
2VJ[7JFX$POUSPMMFSͷιʔεͱͷඥ͚
3FTVMU7JFX$POUSPMMFSͷιʔεͱͷඥ͚
ϓϩάϥϛϯά
มΛఆٛ // Λ֨ೲ var csvArray:[String] = [] // औΓग़ͨ͠Λ֨ೲ var
questionArray:[String] = [] // ม var questionCount = 0 // ग़ var correctCount = 0 // ਖ਼ղ // ఆ let total = 3 // ग़ let waitQuestion = 0.8 // දࣔͷִؒ
ΛDTW͔Βྻʹ // CSVϑΝΠϧͷಡΈࠐΈ func loadCSV(filename : String)->[String] { // ฦ٫ͷॳظԽ
var csvStr:[String] = [] // CSVΛಡΈࠐΜͰArrayʹ if let csvPath = Bundle.main.path(forResource: filename, ofType: "csv") { do { var csvData = try String(contentsOfFile: csvPath, ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹencoding: String.Encoding.utf8) csvData = csvData.replacingOccurrences(of: "\n", with: "") csvStr = csvData.components(separatedBy: .newlines) } catch let error as NSError { print(error.localizedDescription) } } return csvStr }
දࣔ // දࣔ func nextProblem() { // questionArrayͷॳظԽ questionArray.removeAll(keepingCapacity: true)
if questionCount < total { // questionArrayʹ৽نΛ֨ೲ questionArray = csvArray[questionCount].components(separatedBy: ",") // දࣔ༰Ληοτ quizNumberLabel.text = "ୈ\(questionCount+1)" quizQuestion.text = questionArray[0] uiButton1.setTitle(questionArray[2], for: .normal) uiButton2.setTitle(questionArray[3], for: .normal) uiButton3.setTitle(questionArray[4], for: .normal) uiButton4.setTitle(questionArray[5], for: .normal) } else { // Λશͯදࣔͨ͠ޙͷॲཧ(ޙͰهड़) } } }
ճΛબͨ͠Βఆ // ਖ਼ޡఆ @IBAction func btnAction(_ sender: UIButton) { //
ਖ਼ղͱϘλϯͷλά൪߸͕ಉ͡ͳΒਖ਼ղ if sender.tag == Int(questionArray[1]) { answerImage.image = UIImage(named: "correct.png") correctCount += 1 } else { answerImage.image = UIImage(named: "incorrect.png") } // ճදࣔͷ༗ޮԽ(0.8ඵؒ) answerImage.isHidden = false DispatchQueue.main.asyncAfter(deadline: .now() + waitQuestion) { self.answerImage.isHidden = true } // ࣍ͷจݺͼग़͠ questionCount += 1 nextProblem() }
ը໘ભҠΛهड़ w 4FRVFΛͬͯΛ͢ͷͰ͢Λఆٛ w ը໘ભҠΛ͢Δ // Segue ͰΛ͢ override func
prepare(for segue: UIStoryboardSegue, sender: Any?) { let sVC: ResultViewController = (segue.destination as? ResultViewController)! sVC.correct = correctCount } // Storyboard Segue ͷ Identifier ΛҾʹఆٛͯ͠ը໘ભҠ DispatchQueue.main.asyncAfter(deadline: .now() + waitQuestion) { self.performSegue(withIdentifier: "toResultViewController", sender: nil) }
2VJ[ͷWJFX%JE-PBEΛهड़ // ը໘දࣔྃޙʹಈ͘ϝιου override func viewDidLoad() { super.viewDidLoad() // ͷಡΈࠐΈ
csvArray = loadCSV(filename: "loveswift") // ը໘ͷॳظԽ answerImage.isHidden = true // දࣔ nextProblem() }
ը໘ΛΔఆٛΛ͢Δ ViewControllerʹҎԼɺه͠·͢ɻ @IBAction func unWindSegue(_ sender: UIStoryboardSegue) { print("topwindow") }
4UPSZCPBSE্ͰΔఆٛΛ͢Δ w VO8JOE4FRVFͱ݁ͼ͚ͭΔ
Ϗϧυ • iPhoneX ͷγϛϡϨʔλʔΛબΜͰʮ⾣ʯΛબ ͢Δɻ
Τϥʔͷ֬ೝํ๏ w ը໘ͷԼ෦ʹҎԼͷ૭Λදࣔͤ͞Δ͜ͱͰɺΤϥʔΛ֬ೝ Ͱ͖·͢ɻ
Ͱ͖·͔ͨ͠
ֶशΛଓ͚͍ͯ͘ʹ
ॻ੶
UFSBUBJM w ࠔͬͨΒɺUFSBUBJMͰฉ͍ͯΈΔɻ w Ͱɺ."/"#*:"ͱ͍͏Πϕϯτ͕͋Δͦ͏Ͱ͢ɻ
ษڧձ • SwiftѪձ • SwiftϏΪφʔζ • AKIBA.swift • ے.swift •
Ikebukuro.swift
ΧϯϑΝϨϯε wUSZ4XJGU wJ04%$
5IBOLZPV
More Decks by Satoru Ohguchi
See All by Satoru Ohguchi
BG770A_photo_transfer_v2.pdf
ochicchi
0
130
Use the M5Stack with 3G Modem
ochicchi
0
2.3k
Play with M5Stack
ochicchi
1
2.3k
How to study AWS IoT
ochicchi
0
1.2k
How to use OMRON sensors and M5Stack
ochicchi
0
120
IotLT_52-HobbyOmronSensors.pdf
ochicchi
2
830
JAWS-UG Beginner 2018/06/22
ochicchi
0
630
Swift愛好会初心者ハンズオン(vol.31)
ochicchi
0
280
Swift入門者向けハンズオンからの学び
ochicchi
1
470
Other Decks in Technology
See All in Technology
狙われているAPIの脆弱性!今こそ手をつけるべき根本的な対策とは?
nagix
0
120
Ebitengine製iOSアプリ公開ボタンを押す会
eiei114
0
120
IBC 2026 動画技術関連レポート / IBC 2026 Report
cyberagentdevelopers
PRO
2
450
Claude Codeで新規事業を伸ばせるか? Zennの試行錯誤の記録
wadayusuke
1
120
Go初心者のクラウドエンジニアが、デプロイを通して旨味を知っていく話
ryudai
1
170
Kiro CLI 入門 (ターミナルと CI で使う) | 目指せ Kiro マスター 03
inariku
PRO
2
140
Context != Context: One window, many lifecycles (AI Native DevCon, Nov 2026)
birgitta410
0
110
Claude Codeで作ったアプリを安全に公開する/Built with Claude Japan 2026
yoshidashingo
0
230
BALLAS Technology Deck
ballas_inc
0
510
AWS基盤改善を支える 私たちの理念と行動指針
kentosuzuki
0
150
【dbts2026】AIエージェントの 判断と探索を変える、 データベース エンジニアリング― 既存DBの処理と依存関係から作る、オペレーショナルオントロジー ―
shisyu_gaku
0
280
AWS Quick 入門 | 目指せ Quick マスター 01
inariku
PRO
2
310
Featured
See All Featured
Side Projects
sachag
456
43k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
60k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
570
The Curse of the Amulet
leimatthew05
4
17k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
The Curious Case for Waylosing
cassininazir
1
610
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
940
Optimising Largest Contentful Paint
csswizardry
37
4k
Discover your Explorer Soul
emna__ayadi
2
1.3k