Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Web からアプリの世界にやってきてハマったこと

Avatar for manemone manemone
August 11, 2015

Web からアプリの世界にやってきてハマったこと

BearTail エンジニア交流 #1 での発表スライド(再構成版)
https://atnd.org/events/68533

Avatar for manemone

manemone

August 11, 2015

More Decks by manemone

Other Decks in Technology

Transcript

  1. Web - جຊతʹจॻʢϋΠύʔςΩετʣ • ϖʔδ୯ҐͰϏϡʔΛ࡞੒ • ϖʔδ͸Ϧιʔεͷ CRUD ૢ࡞୯Ґ͕جຊ •

    Ͱ͖ͨϖʔδΛϦϯΫͰͭͳ͍Ͱ͍͘ • Ϣʔβ͸ࣗ༝ʹϖʔδ͍ؒͬͨΓདྷͨΓͰ͖Δ
  2. ΞϓϦ - OS ͷ UI ͱಉ౳ Ϗϡʔ͸ GUI ͦͷ΋ͷ •

    ΠϯλϥΫςΟϒͳ UI ཁૉΛଟ༻ • ͳΔ΂͘ը໘ભҠΛ͠ͳ͍ ϦϯΫͷ֓೦͸ͳ͍ • Ϣʔβ͸޷͖ͳը໘ʹδϟϯϓͰ͖ͳ͍ • ֤ը໘ͷදࣔϑϩʔ͸ݶఆ
  3. Web ͬΆ͍ભҠʹ͠ͳ͍ ͍͍ͨͯը໘Λ෼͚͗͢Δ •  ࡞੒ը໘ˠ֬ೝը໘ˠ׬ྃը໘ • ̋ ϞʔμϧͰೖྗը໘ग़͖͙ͯͯ͢ফ͑Δ •

    ʮؔ৺ʯ΍ʮ໨తʯ୯ҐͰҰͭͷը໘ʹ·ͱΊΔͱΞϓϦͬ Ά͘ͳΔ • ίϯςϯπϝΠϯͰͳ͍ը໘Ͱ͸εΫϩʔϧආ͚Δ
  4. Web ͷΧελϜ෦඼࡞੒ UI ίϯϙʔωϯτ = HTML ཁૉ + CSS +

    JS جຊతͳྲྀΕ 1. div ϘοΫεΛ༻ҙ 2. CSS Ͱ഑ஔɺ૷০ 3. JS ͰΠϯλϥΫγϣϯΛ͚ͭΔ
  5. Web ͷΧελϜ෦඼࡞੒ • ը໘૷০༻ͷ؆қͳݴޠ͕༻ҙ͞Ε͍ͯΔ • ͲΜͳ DOM ΋ (form ܥΛআ͍ͯ)

    ಉ͡Α͏ʹѻ͑Δ • ΠϯλϥΫγϣϯઃఆ΋ΠϕϯτΩϟονˠclass ͷมߋͱ୯ ७
  6. ΞϓϦ(!) var line = UIBezierPath() lineColor.setStroke() line.lineWidth = lineWidth line.flatness

    = pathFlatness line.setLineDash(linePattern, count: linePattern.count, phase: 0) line.lineCapStyle = correctedLineCap if drawTopLeftCorner { line.moveToPoint(borderTopLeftCornerEntry) line.addArcWithCenter(borderTopLeftCornerCenter, radius: borderTopLeftRadius, startAngle: CGFloat(M_PI), endAngle: CGFloat(1.5*M_PI), clockwise: true) } if drawTop { if !drawTopLeftCorner { line.moveToPoint(borderTopLeftCornerExit) } line.addLineToPoint(borderTopRightCornerEntry) } if drawTopRightCorner { if !drawTop { line.moveToPoint(borderTopRightCornerEntry) } line.addArcWithCenter(borderTopRightCornerCenter, radius: borderTopRightRadius, startAngle: CGFloat(1.5*M_PI), endAngle: CGFloat(2.0*M_PI), clockwise: true) } if drawTrailing { if !drawTopRightCorner { line.moveToPoint(borderTopRightCornerExit) } line.addLineToPoint(borderBottomRightCornerEntry) } if drawBottomRightCorner { if !drawTrailing { line.moveToPoint(borderBottomRightCornerEntry) } line.addArcWithCenter(borderBottomRightCornerCenter, radius: borderBottomRightRadius, startAngle: CGFloat(0.0), endAngle: CGFloat(0.5*M_PI), clockwise: true) } if drawBottom { if !drawBottomRightCorner { line.moveToPoint(borderBottomRightCornerExit) } line.addLineToPoint(borderBottomLeftCornerEntry) } if drawBottomLeftCorner { if !drawBottom { line.moveToPoint(borderBottomLeftCornerEntry) } line.addArcWithCenter(borderBottomLeftCornerCenter, radius: borderBottomLeftRadius, startAngle: CGFloat(0.5*M_PI), endAngle: CGFloat(1.0*M_PI), clockwise: true) } if drawLeading { if !drawBottomLeftCorner { line.moveToPoint(borderBottomLeftCornerExit) } line.addLineToPoint(borderTopLeftCornerEntry) } line.stroke() self.layoutIfNeeded()