MaterialShell์ด โโ์๋ํ๋๋ก ํ๋ ค๋ฉด ๋จธํฐ๋ฆฌ์ผ ๋์์ธ์ผ๋ก ๋ณด์ด๋ ์ ธ์ด ํ์ํ ๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ๋ด์ฉ๋ ๋จธํฐ๋ฆฌ์ผ ๋์์ธ์ด์ด์ผ ํฉ๋๋ค. ์ค๋๋ ๊ทธ๊ฒ์ ์ปค์คํ ๋ ๋๋ฌ๋ฅผ ์๋ฏธํฉ๋๋ค. ์ด๊ฒ์ ๋ฌด๊ฒ๊ณ ์ฌ์ฉ์ ์์ ๊ด์ ์์ ๋ฐ๋์งํ์ง ์์ต๋๋ค. ๋์ ๋ ๋์ ์ ๊ทผ ๋ฐฉ์์ด ํ์ํฉ๋๋ค.
<Button x:Class="Local.MyButton">
<Button.Template>
<DrawingTemplate>
<Drawing>
<Grid>
<RoundedRectangle Background="{x:Bind BackgroundColor}" />
<Ellipse x:Name="TouchFeedback" Opacity="0" />
<Text Content="{x:Bind Text}" />
</Grid>
</Drawing>
</DrawingTemplate>
</Button>
</Button>
์ ์ด๋ ํ์ฌ๋ก์๋ ๋ณด๊ธฐ ํ
ํ๋ฆฟ์ด DrawingTemplate
์ฌ์ผ ํฉ๋๋ค. DrawingTemplate
์ ์ฒซ ๋ฒ์งธ ์์์ ํญ์ Drawing
์
๋๋ค. Drawing
๋ด๋ถ์์ ๋ ์ด์์๊ณผ ๋๋ก์ ํ๋ฆฌ๋ฏธํฐ๋ธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ธฐ ํ๋ฆฌ๋ฏธํฐ๋ธ๋ x:named์ผ ์ ์๊ณ ์ด๋ฆ์ผ๋ก ์กฐํ๋๊ณ ๋ค๋ฅธ View
์ฒ๋ผ ์ฝ๋ ์จ๊น์์ ์กฐ์๋ ์ ์์ต๋๋ค. ์ค์ ๋ก ๊ทธ๋ฆฌ๊ธฐ ํ๋ฆฌ๋ฏธํฐ๋ธ๋ ๋ ๋๋ฌ๊ฐ ์๊ณ ์๋ํ๋ ค๋ฉด Drawing
์์ ์์ด์ผ ํ๋ ๋จ์ํ ๋ณด๊ธฐ์
๋๋ค. Drawing
๋ ๋ชจ๋ ๊ฐ๋จํ ๊ทธ๋ฆฌ๊ธฐ ๋ช
๋ น์ผ๋ก ์ถ์๋๋ฏ๋ก ์ง์ํ ์ ์๋ ์ด๋ฆฐ์ด๋ก ์ ํ๋ฉ๋๋ค.
๊ธฐ๋ณธ ๊ฐ์ฒด๋ฅผ ๊ทธ๋ฆด ๋ ์์/๋ฐฐ๊ฒฝ ๋ฑ์ ์ ๊ณตํ๊ธฐ ์ํด ์์ ์ ํ์ด ์๋ ๋ธ๋ฌ์ ์ ํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
MaterialShell์ ์ฌ์ฉํ ๋ ๋ชจ๋ ๊ด๋ จ ์ปจํธ๋กค์ ๊ธฐ๋ณธ Template
๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๋ค. ์ด ์ปจํธ๋กค์ ๋จธํฐ๋ฆฌ์ผ ๋์์ธ ์ง์นจ์ ๋ฐ๋ผ ํ
๋ง๋ฅผ ์ง์ ํ๊ณ ํ๋ซํผ ์ ์ฒด์์ ๋ชจ์๊ณผ ๋๋์ ํตํฉํฉ๋๋ค. ์ด ํ
๋ง๋ ๋ฆฌ์์ค ์ฌ์ ์์ ์ ํ๋ฅผ ์ฐจ๋จํ์ฌ ๊ณ์ธต ๊ตฌ์กฐ์ ๋ชจ๋ ๊ณ์ธต์์ ๋ฌด์ํ ์ ์์ต๋๋ค.
DrawingTemplated ์ปจํธ๋กค์ ๋๋๋ก ๋ค๋ฅธ ๋ ๋๋ฌ๋ฅผ ํ์๋ก ํ ์ ์์ผ๋ฏ๋ก ์ผ๋จ ์คํ๋๋ฉด ์ปจํธ๋กค์ ํ ํ๋ฆฟ์ด ๋ณ๊ฒฝ๋์ง ์์ ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋๋ถ๋ถ ๋ง์ปค ์ ํ์ ๋๋ค. ์์ผ๋ก ํ ํ๋ฆฟ์ด DrawingTemplate์ด์ด์ผ ํ๋ค๋ ์๊ตฌ ์ฌํญ์ ์ ๊ฑฐํ ๊ฒ์ ๋๋ค.
public class DrawingTemplate : ControlTemplate {}
๋ ๋๋ฌ๊ฐ ์๊ณ ๋์ ์์ ๋ทฐ์์ ๊ธฐ๋ณธ ๋๋ฉด์ผ๋ก ์ฌ์ฉํ๋ ๋ทฐ์ ๋๋ค. Drawing์ ์ธก์ ํ ์ ์๋ ๋งค์ฐ ๊ธฐ๋ณธ์ ์ธ ๋ ์ด์์์ด์ง๋ง ๋ ์ด์์ํ ๋ ํญ์ ๋ชจ๋ ์์์ ํฌ๊ธฐ๋ฅผ ์์ ๊ณผ ๊ฐ์ ํฌ๊ธฐ๋ก ์กฐ์ ํฉ๋๋ค.
public class Drawing : Layout<View> {}
public class View : VisualElement // new API only
{
public ControlTemplate Template { get; set; }
protected BindableObject GetTemplateChild(string childName);
protected virtual void OnApplyTemplate ();
}
public class Brush : BindableObject
{
public static readonly BindableProperty OpacityProperty;
public double Opacity { get; set; }
}
public class SolidColorBrush : Brush
{
public static readonly BindableProperty ColorProperty;
public Color Color { get; set; }
}
public class LinearGradientBrush : Brush
{
public static readonly BindableProperty GradientStopsProperty;
[Content]
public GradientStopCollection GradientStops { get; set; }
}
public sealed class GradientStopCollection : IEnumerable<GradientStop>, IList<GradientStop>
public sealed class GradientStop : BindableObject
{
public static readonly BindableProperty ColorProperty;
public Color Color { get; set; }
public static readonly BindableProperty OffsetProperty;
public double Offset { get; set; }
public static readonly BindableProperty StartPointProperty;
public Point StartPoint { get; set; }
public static readonly BindableProperty EndPointProperty;
public Point EndPoint { get; set; }
}
์ฐ๊ด๋ ์์ฑ์ด ์๋ ๋ง์ ์์ ๊ทธ๋ฆฌ๊ธฐ ๊ธฐ๋ณธ ์์๊ฐ ํ์ํฉ๋๋ค. ์ด ๋ฌธ์๋ ๊ทธ๊ฒ๋ค์ ๋ชจ๋ ์ ์ํ๋ ค๊ณ ํ์ง ์๊ณ , ์กด์ฌํด์ผ ํ ๋ช ๋ฐฑํ ๊ฒ๋ค ์ค ์ผ๋ถ๋ง ๊ธฐ๋กํด ๋์ญ์์ค. ๋๋ก์ ๊ธฐ๋ณธ API๋ SkiaSharp๋ฅผ ์์ ํ ๋์ฒดํ๊ธฐ ์ํ ๊ฒ์ด ์๋๋๋ค. ๊ทธ๋ฌ๋ Skia ๋๋ paltform์ ๋ํ ๊ธฐ๋ณธ ๋๋ก์ ๋ฐฑ์๋ ์ฌ์ฉ์ ๋ถ๊ฐ์ง๋ก ์ ์ ๋๋ค.
Skia๋ฅผ ์ํ ์ข์ ๊ฒฝ๋ก๋ Skia๋ฅผ ํตํด ๋๋ก์์ ๋ ๋๋ง ํ๋๋ก ์ง์ ํ๋ SkiaDrawing ์์๋ฅผ ์ถ๊ฐ ํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ Skia๋ ๋ชจ๋ ์คํก ํ๋ฆฌ๋ฏธํฐ๋ธ๋ฅผ ๋ ๋๋งํ๊ณ ์ฝ๋ฉ๋ ๋๋ก์์ ํ์ฉํ๋ Skia ๋๋ก์ ์์๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
namespace Xamarin.Forms.Shapes
{
public class Shape : View
{
public static readonly BindableProperty FillProperty;
public Brush Fill { get; set; }
public static readonly BindableProperty StrokeProperty;
public Brush Stroke { get; set; }
public static readonly BindableProperty StrokeThicknessProperty;
public double StrokeThickness { get; set; }
}
}
namespace Xamarin.Forms.Shapes
{
public sealed class Line : Shape
{
public Point Start { get; set; }
public Point End { get; set; }
}
}
namespace Xamarin.Forms.Shapes
{
public sealed class Ellipse : Shape
{
}
}
public sealed class Text : Shape
{
// All the same properties as Label more or less
}
namespace Xamarin.Forms.Shapes
{
public sealed class Rectangle : Shape
{
public CornerRadius CornerRadius { get; set; }
}
}
์ด๊ฒ์ UWP์ ์๋นํ ๋ค๋ฅด์ง๋ง ๋ฒ ์ง์ด ๊ณก์ ๊ฒฝ๋ก/๋ชจ์๋ฟ๋ง ์๋๋ผ ์ผ๋ฐ ๋ค๊ฐํ ๋ฐ ํด๋ฆฌ๋ผ์ธ์ ๊ทธ๋ฆด ์ ์์ต๋๋ค.
namespace Xamarin.Forms.Shapes
{
public sealed class BezierLine : Shape
{
public IList<BezierPoint> Points { get; }
public bool ShouldClose { get; set; }
}
}
namespace Xamarin.Forms.Shapes
{
public sealed class BezierPoint : Point
{
public Size LeftControlOffset { get; set; }
public Size RightControlOffset { get; set; }
}
}
ํธ๋ง ๊ทธ๋ฆฌ๋ ์ข์ ๋ฐฉ๋ฒ์ ์์ต๋๋ค. ์ด๊ฒ์ ํ๊ธฐ ์ํ UWP์ ๋ฉ์ปค๋์ฆ์ ์ฝ๊ฐ... ์ด, ์ฌ๋ฏธ๊ฐ ์์ต๋๋ค.
Shapes๊ฐ ํ์ฌ Views๋ผ๋ ์ฌ์ค์ ๋ํด์๋ ํ ๋ง์ด ์์ต๋๋ค. ์ด๊ฒ์ ์ฌ์ฉ์๊ฐ ์๋ก์ด ๋ ์ด์์ ๋ฉ์ปค๋์ฆ์ ๋ฐฐ์ธ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ข์ ํ์ค ๋ ์ด์์์์ ์ฌ์ฉํ ์ ์๋์ง ํ์ธํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค. ๋จ์ ์ ๋๋ก์ ํ๋ฆฌ๋ฏธํฐ๋ธ๊ฐ ๋๋ก์์ ์ปจํ ์คํธ์์๋ง ์๋ํ์ง๋ง ์ปดํ์ผ๋ฌ๊ฐ ๋๋ก์ ์ธ๋ถ์์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ง์ง๋ ์๋๋ค๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ ์ฌ๋ก๋ ํ์ฌ ๋ ํฐ ์ ์ผ๋ก ๋ณด์ด๋ Drawing ํน์ ๋ ์ด์์์ ๋ง๋๋ ๊ฒ์ ๋๋ค.
์ด์์ ์ผ๋ก ๋ ์ด์์์ View ๋ฐ Drawing Primitives๊ฐ ๊ตฌํํ ์ผ๋ถ ILayoutable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ๋ชจ๋ ์์์ ํ์ฉํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด๋ฏ๋ก ํ์ฌ๋ก์๋ View๊ฐ ์คํ ๊ฐ๋ฅํ ์ ์ผํ ์ต์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
ImageBrush๊ฐ ํ์ํ ๊ฒ์ ๋๋ค. ๋ชจ๋ ํ๋ซํผ์ด ๋ธ๋ฌ์๊ฐ ์ฌ์ฉ๋๋ ๋ชจ๋ ๊ณณ์์ ImageBrush๋ฅผ ์ง์ํ ์ ์๋์ง ํ์ธํ๊ธฐ ์ํ ์ฐ๊ตฌ๊ฐ ํ์ํฉ๋๋ค.
ํ์ฌ ํ์ํ ์์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ๋ ๋๋ฌ๋ฅผ ์ ํํ๋ ๋ฉ์ปค๋์ฆ์ด ์ฝ์ด์ ์์ต๋๋ค. ์ถ๊ฐํด์ผ ํฉ๋๋ค. ์ด์์ ์ผ๋ก๋ ํ ํ๋ฆฟ ๊ธฐ๋ฐ ์ค์์น๋ณด๋ค ๋ ์ผ๋ฐ์ ์ด์ด์ผ ํฉ๋๋ค.
@jassmith ,
์ด๊ฒ์ XAML ํ์คํ์ ๊ด์ ์์ ๋ณผ ๋ ๋งค์ฐ ์ข์ ์์ด๋์ด์ด๋ฉฐ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง ์ด ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ๊ฐ ๋๋ ์ฃผ์ํด์ผ ํฉ๋๋ค. Xamarin.Forms๋ฅผ XAML ํ์ค(https://github.com/Microsoft/xaml-standard)์ผ๋ก ์ด๋ํ๋ ค๋ ์ ๋ฐ์ ์ธ ๋ชฉํ์ ํ์คํ ๊ธฐ์ฌํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ VisualStates์ ํจ๊ป ์ด๊ฒ์ด ์ค์ ๋ก ์ผ๋ง๋ ์ ์ฉํ ์ง์ ๋ํ ํฐ ๋ฌผ์ํ๊ฐ ์์ต๋๋ค.
์ด๋ฌํ ์ข ๋ฅ์ ์์ญ์์ ๊ทธ๋ํฝ ๊ฐ์์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ๊ทธ๋ํฝ ๊ฐ์์ ๋ถ์กฑ์ ์ด๋ฏธ ์ ๋๋ฉ์ด์ ๊ณผ ๊ฐ์ ์์คํ ์ ์ผ๋ถ์์ ๋ฌธ์ ์ ๋๋ค. ๋ด ์๊ฐ์ Xamarin.Forms๊ฐ ๋ฒกํฐ ์ด๋ฏธ์ง์ ๋ ๋๋งํ๋ ์ฑ ์์ ๋งก์ผ๋ฉด ์ดํ์ ๊ธฐ๋ณธ ํ๋ซํผ์์ ์ ๊ฑฐ๋๊ณ GPU ์ฒ๋ฆฌ์์ CPU ์ฒ๋ฆฌ๋ก ์ด๋๋ฉ๋๋ค. ์ด๊ฒ์ ์ด๋ค ๊ฒฝ์ฐ์๋ ์์ฒญ๋ ์ฑ๋ฅ ์ ํ๊ฐ ๋ ๊ฒ์ ๋๋ค. ํ์ง ๋ง๋ผ๋ ๊ฒ์ด ์๋๋ผ ์ฒ๋ฆฌ๋ฅผ CPU๋ก ์ฎ๊ธฐ์ง ์๊ณ GPU ์์ค์์ ๋จ๊ฒจ๋ ์ ์์์ง ๊ณ ๋ฏผํด์ผ ํ๋ค. XF ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์๋น์๋ ๊ธฐ๋ณธ ํ๋ซํผ์์ ์คํ๋ ํญ๋ชฉ๊ณผ XF ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ํด ๋ ๋๋ง๋๋ ํญ๋ชฉ์ ์ธ์ํด์ผ ํฉ๋๋ค.
๋ค์ดํฐ๋ธ ๋๋ก์๊ณผ ํฌ๋ก์ค ํ๋ซํผ ๋๋ก์ ์ฐจ์ด ๊ฐ์ ๊ท ํ ๋ฌธ์ ๋ ์์ต๋๋ค. ํ ์คํธ๋ ์ค์ํ ํฌ์ธํธ์ ๋๋ค. ํ ์คํธ๋ ๋ชจ๋ ํ๋ซํผ์์ ๋์ผํ๊ฒ ๋ ๋๋ง๋์ด์ผ ํฉ๋๊น? ์ฆ, ๋ชจ๋ ํ๋ซํผ์์ ๊ท ์ผ์ฑ์ ๋ง๋ค๊ธฐ ์ํด ๊ธ๊ผด ๋ ๋๋ง์ XF๋ก ์ ๋ฌํด์ผ ํฉ๋๊น? ์๋ง๋. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ด XF์ ์ ์ฒด ํ๋ก์ ํธ๊ฐ ๋์ด์ผ ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์ฌ๋๋ค์ ๋ฌด์์์ ์ผ๋ก ์์ ์๊ฐ์ ์ธ๋ถ ์ฌํญ์ ๊ฐ์งํฉ๋๋ค. ์ธ๋ถ ์ฌํญ์ ์ ๋๋ฉ์ด์ ๋ฑ์ ์์ ์ ์์ต๋๋ค. ํน์ ํ๋ซํผ์ ํ์ค์์ ์กฐ๊ธ๋ง ๋ฒ์ด๋๋ ์ฌ์ฉ์๊ฐ ๋ถํธํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ๋๋ฉด์ ๊ท ์ผํ๊ฒ ๋ง๋๋ ๊ฒ์ด ๋ฐ๋์ ์ข์ ์๊ฐ์ ์๋๋๋ค. Avalonia๋ ํ์คํ ๊ทธ ๊ธธ์ ๊ฐ๊ณ ์์ง๋ง ๊ทธ๊ฒ์ ์์ ํ ๋ณ๊ฐ์ ๊ฒฝ์ฐ์ด๋ฉฐ ์ด๊ฒ์ด Avalonia์ Xamarin Forms์ ์ฐจ์ด์ ์ ๋๋ค.
๋ํ ๊ธฐ๋ณธ ํ์์ ์ด๋ฆ์ ๋์ผํ๊ฒ ์ง์ ํ๊ณ XAML ํ์ค๊ณผ ์ธ๋ผ์ธ๋๋๋ก UWP ๋ฐ WPF์ ๊ฐ์ ๋ค๋ฅธ ํ๋ซํผ๊ณผ ์ต๋ํ ๊ฐ๊น๊ฒ ์ ๋ ฌ๋๋๋ก ์ฃผ์ํด์ผ ํฉ๋๋ค.
@davidortinau , ์ด์ ๋ํ ์๊ฐ์ด ์์ต๋๊น?
๋จธํฐ๋ฆฌ์ผ ๋์์ธ์ ๊ฐ์ฅ ํฐ ํน์ง ์ค ํ๋๋ Ripple์
๋๋ค. ์ด๋ฅผ ์ง์ํ ๊ฒ์ผ๋ก ์์ํ์ญ๋๊น?
์ ๋ฐ์ ์ผ๋ก ๋๋ ์ด๊ฒ์ด ํ์์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค!
์ด ๋ฐฉํฅ์ด ์ ๋ง ๋ง์์ ๋ญ๋๋ค. iOS์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์์(i, > ์ต์ )๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ ๋ณด๊ธฐ ์ ์ ์ฌ์ฉํ๊ณ ์์์ง๋ง ์ฌ์ฉ์ ์ง์ ํ ๋ง๋ฅผ ์ ์ฉํ ์๋ก ์ฝ๊ฐ์ ๊ธฐ๋ณธ ์ ์ ๋ชจ๋ฐฉํ๊ณ ์ ์ฐฝํ๊ณ ๋ฉ์ง ๋ณด๊ธฐ/์์ ํ ๋ง๋ฅผ ์ํด ๋ ๋ง์ด ๊ฐ๊ณ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค. ์ฑ์ ๋ํด ์ผ๊ด์ฑ์ด ์์ง๋ง ์ธ๋ถ ์ฌํญ์ ์ ์ธํ๊ณ ๋ ๋ค์ดํฐ๋ธ๊ฐ ์๋๋๋ค. ์ ์ ํ ๊ธฐ๋ณธ ๋ ๋๋ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ฌ์ฉ๋๋ค๋ฉด GPU๋ ๋ฌธ์ ๊ฐ ๋์ง ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. Skia๋ฅผ ์ฝ์ผ์ญ์์ค. Flutter๋ฅผ ๊ตฌ๋ํ๋ ๊ฒ๊ณผ ๋์ผํ ๊ฒ์ ๋๋ค.
๋ณ๊ฐ์ ๋ฌธ์ ์ผ ์๋ ์์ง๋ง ๋์์ SVG๋ฅผ Forms์ 1๊ธ ์๋ฏผ์ผ๋ก ๋ง๋๋ ๊ฒ์ด ์ข์ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด ์ด๋ฏธ์ง ๋ฒํผ์ ๋๋ฅผ ๋ ์ ๋๋ฉ์ด์ ํดํ ๊ณผ ๊ฐ์ ๊น๋ํ ํจ๊ณผ๋ฅผ ํ์ฑํํฉ๋๋ค.
๋ด ์๊ฒฌ์ ๊ฒฐ๊ตญ ํ๋ซํผ์ ๊ณ ์ ํ ํน์ฑ์ ์์ฉํ๋ ์ด์ํ ์์ธ๋ฅผ ์ ์ธํ๊ณ ํ๋ซํผ ๊ฐ ์ผ๊ด๋ ๋์์ผ๋ก ํ๋ก๊ทธ๋๋ฐํ๊ธฐ ์ฌ์ด ๊ฐ๋ ฅํ๊ณ ํ๋ถํ๋ฉฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ณด์ด๋(๊ธฐ๋ณธ์ด ์๋!) ์ปจํธ๋กค์ด ํ์ํ๋ค๋ ๊ฒ์ ๋๋ค. ์: Android์ ํ๊ธ ํจ๊ณผ.
@ChaseFlorell ์ฌ์ค ์ ๋ ๊ทธ๋ ์ต๋๋ค. ํ ํ๋ฆฟ์ ์ด๋ฆ์ x:Nameํ ๋ค์ FindByName์ ์ฌ์ฉํ์ฌ ํํค์น ์ ์๋ค๋ ์์ด๋์ด์ ๋๋ค. ๊ธฐ๋ณธ ์์๊ฐ ์์ผ๋ฉด ๋ค๋ฅธ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ๊ธฐ์ ์ ๋๋ฉ์ด์ ์ ์ ์ฉํ ์ ์์ง๋ง ์ ๋๋ฉ์ด์ ์ฝ๋ฐฑ์ ๊ฐ์ ธ์ค๋ ํน๋ณํ ๋ฐฉ๋ฒ์ด ์์ ์ ์์ต๋๋ค. ๋๋ ์์ง๋ ๊ทธ ์ ํํ ์ธ๋ถ ์ฌํญ์ ์ฐ๊ตฌํ๊ณ ์์ต๋๋ค. Skia๊ฐ ๊ทธ๋ฆผ์ ๊ทธ๋ฆฌ๋ฉด Android์์๋ ์ฝ๊ฒ 60FPS์ ๋๋ฌํ ์ ์์ผ๋ฉฐ Skia๊ฐ ์์ด๋ ๋ค๋ฅธ ํ๋ซํผ์์๋ 60FPS์ ๋๋ฌํ ์ ์์ต๋๋ค.
@rogihee SVG๋ ์ค์ ๋ก ๋ฐฐ์ก ํ์์ด ์๋๋๋ค. ์ฃ์กํฉ๋๋ค. / ์ ๋ SVG๋ฅผ ํ๋ซํผ ๊ฐ์ ์ผ๊ด๋๊ฒ ๋ ๋๋งํ๋ ค๋ ์ฑ ์์ ์ง๊ณ ์ถ์ง ์์ต๋๋ค. ์ด์จ๋ ๊ทธ๋ค์ ์ธ์ SVG์ ํํธ๋ฅผ ์ถ๊ฐํ ์์ ์ ๋๊น...
@jassmith , ์ด๊ฒ์ ํ๋์จ์ด ๊ทธ๋ํฝ ๊ฐ์์ ์ฌ์ฉํฉ๋๊น?
Qt์ QML์์ ์จ๋ค๋ฉด ์ด๊ฒ์ ๋ณด๊ณ ์ถ์ต๋๋ค. ๋ช ๊ฐ์ง ๋ถ๋ช ํ ๋ด์ฅ ์ปจํธ๋กค๊ณผ ๊ฒฐํฉํ์ฌ ๋ง์ ์ ๋ณด๋ฅผ ๋ณํํ ์ ์์ต๋๋ค.
์กฐ๊ธ ์๊ธฐ์์กฐ์ด๊ฑฐ๋ ๋ค๋ฅธ ๋ฌธ์ ์ ๊ฐ์น๊ฐ ์์ ์ ์์ง๋ง, ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ์ปจํธ๋กค์ ๋ํ ์ ๊ทผ์ฑ/ํ ์คํธ ๊ฐ๋ฅ์ฑ ์คํ ๋ฆฌ ๊ณํ์ ๋ฌด์์ ๋๊น?
@RichiCoder111y ๋ ํ์คํ ์ ๋๋ก ํด๊ฒฐํด์ผ ํ ์ฌํญ์ ๋๋ค. ์ด์์ ์ผ๋ก๋ Text ์์๊ฐ ๊ฐ๋จํ ์ปจํธ๋กค์ ํ์ํ ๋๋ถ๋ถ์ ์์ฑ์ ์๋์ผ๋ก ์ค์ ํฉ๋๋ค.
์ด๊ฒ์ xf 4.0์ ๊ธฐ๋ฅ์ ๋๊น?
3.0 ์๋ฆฌ์ฆ
@jassmith ๋ก๋๋งต์ ๊ทธ๋ฆฌ๊ธฐ ๋ฐ ์ ธ์ ๋ํ ๋ด์ฉ์ด ์์ต๋๋ค.
AFAIK ๊ณต๊ฐ ๋ก๋๋งต์๋ ์์ ํ ์์ ๋์ง ์์ ํญ๋ชฉ์ด ํฌํจ๋์ด ์์ง ์์ต๋๋ค.
2018๋ ์ ์ด ๋ชจ๋ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๊ฐ ๋ ๊น์?@jassmith
@juepiezhongren ์ฐ๋ฆฌ๋ ์ด๋ฌํ ์ ์์ ํ๊ธฐ๋ก ์ฝ์ํ์ง ์์์ต๋๋ค. ๊ทธ๋ค์ ์์ ์ ์ฅ์ , ๊ฒฐ์ ๋ฑ์ ๋ํ ๊ณต๊ฐ ํ ๋ก ์ ์ํด ์ฌ๊ธฐ์ ์ ์๋ฉ๋๋ค.
๋๋ ๋น์ ์ ๊ด์ฌ์์ ์ด๋ฌํ ์ฌ์์ด ๋น์ ์๊ฒ ํฅ๋ฏธ๋ก์ด ๊ฒ์ผ๋ก ์๊ฐํฉ๋๋ค. Xamarin.Forms๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ์ ๋น๋ํ ๋ ๋์์ด ๋๋ ๋ช ๊ฐ์ง ๊ตฌ์ฒด์ ์ธ ์๋ฅผ ๊ณต์ ํด ์ฃผ์๊ฒ ์ต๋๊น? ์ด๋ค ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ค๊ณ ๋ณด์ญ๋๊น? ๊ทธ๋ค์ด ๋น์ ์๊ฒ ์ด๋ค ๊ธฐํ๋ฅผ ์ด์ด์ค๋ค๊ณ ๋ณด์ญ๋๊น?
๊ณต์ ํ ์ ์๋ ์ค์ ์ฌ๋ก์ ์ด์ผ๊ธฐ๋ ์ด๊ฒ์ด ์ค์ ๊ฐ์น๋ฅผ ์ ๊ณตํ ์ ์์์ ๊ฒ์ฆํ๋ ๋ฐ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
์ธ์ ๋์ฒ๋ผ ์ํ๋ ๊ฒฝ์ฐ ๋๊ตฌ๋ ์ง ์ ์๊ฒ ์ด๋ฉ์ผ์ ๋ณด๋ด์ฃผ์ญ์์ค. ๋ฐ์ด๋น๋. [email protected]
๋์๊ฒ ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ์ ์ฌ ๊ณ ๊ฐ๊ณผ UX/UI์ ์ ๊ณตํด์ผ ํ๋ "์ฐ๋ฆฌ๋ Forms ํ๋ ์์ํฌ๋ก๋ ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค"๋ผ๋ ๋๋ต์ ๋๋ค. ๊ทธ๊ฒ์ ํ๋ ์ ์ํฌ์ ์ ์ฉ์ ๋จ์ด ๋จ๋ฆฌ๊ณ ๊ณ ๊ฐ๊ณผ ํจ๊ป ํ ์์๋ ๊ธฐํ๊ฐ ๋๋ฌด ๋ง์ต๋๋ค.
ํ์์๋ ์ฐ๋ฆฌ๊ฐ ํ๋ณดํ๋ ๊ตฌ์ฑ ํจ๋ฌ๋ค์์ด ์์ต๋๋ค. ํ๋ก์ ํธ๋ UI ํ๋ฆฌ๋ฏธํฐ๋ธ๋ฅผ ์ฌ์ฉํ์ฌ UI๋ฅผ ๋น๋ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ํ์, ์ ๋๋ฉ์ด์ (์์ ์ ๋๋ฉ์ด์ ๊ณผ ๊ฐ์ ํญ๋ชฉ ํฌํจ), UI ์์ ๋ฐ ์ ์ค์ฒ์ ์ ์ฉ๋ฉ๋๋ค.
์ด ์ ์์ด ํ๋ซํผ ์ค๋ฆฝ์ ์ธ ๊ตฌ์ฑ UI ํ๋ฆฌ๋ฏธํฐ๋ธ๋ฅผ ์ ๊ณตํ ๊น์?
@timahrentlov ์ฐ๋ฆฌ๋ ๋ ผ์๋ฅผ ๋ณด๊ณ ๊ทธ ํ๊ณ๊ฐ ๋ฌด์์ธ์ง ๊ทธ๋ฆฌ๊ณ ๊ทธ ํ๊ณ์ ์ด์ ๋ฅผ ์ ํํ ๋ณผ ํ์๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์์งํ ๋๋ ๊ฐํ ๊ทธ๋ ๊ฒ๊น์ง ์๊ฐํ๊ฑฐ๋ ๋ฉ๋ฆฌ ๋ณผ ์ ์์ต๋๋ค. Xamarin Forms์์ ๋ณผ ์ ์๋ ๋ฌธ์ ๋ ํจ์ฌ ๋จ์ํ ๊ด์ ์์ ๋ณผ ์ ์์ต๋๋ค. ์ฌ์ ํ ๊ฐ๋ฐ ๋ฆฌ์์ค๊ฐ ๋งค์ฐ ์ ํ๋ ํ๋ก์ ํธ๋ก ๋จ์ ์์ต๋๋ค. ์ค์ ๋ก ์ถฉ๋ถํ ์ ๋ ฅ๊ณผ ์ฐ๋ฃ๊ฐ ์๋ ์ํฉ์์ ๋ฌด์์ ํ ์ ์๋์ง ๋ ผ์ํ๋ ๊ฒ์ ๋นํ์ค์ ์ด๊ฑฐ๋ ์ธ๋ชจ๊ฐ ์์ต๋๋ค. ๋๋ ์์ ์ด ๋ณด์ด์ง ์๋๋ค. Xamarin์ ๋น๋ฐ๋ฆฌ์ ์ฌ์ ํ OSS ์ปค๋ฎค๋ํฐ์ ์ผ๋ถ ๊ฐ์ธ์ด ์์ ์ ์์ํ๊ณ ๋ฌธ์ ๋ฅผ ์์ ํ๊ธฐ๋ฅผ ๋ฐ๋ผ๊ณ ์์ต๋๊น? ์คํดํ์ง ๋ง์ธ์. ์ ๋ Xamarin์ด Xamarin Forms์ ํฌ์ํ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ์กด์คํฉ๋๋ค.
@davidortinau
ํฌ๋ก์ค ํ๋ซํผ์ ๋
ํนํ ์๊ฐ์ ๋์์ธ, ๋
ํนํ ๋ฒํผ ๋ชจ์, ๋
ํนํ ์๋ฆฌ ํ์์ ์ฌ๋ผ์ง๋ ํจ๊ณผ ๋ฑ์ ํ์ธํ๊ธฐ ์ด๋ ต์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ฝ๊ฐ์ ํญ๋ฐ๊ณผ ํจ๊ป mac์ ์๋ฆผ์ด ํฌ๋ฏธํด์ง๋ฉด ๊ณ ๊ฐ์๊ฒ ๊น์ ์ธ์์ ์ฃผ๊ธฐ ์ฝ์ต๋๋ค. ๊ทธ๋ ์ฐ๋ฆฌ๊ฐ wpf๋ฅผ ๋ง์ด ์ข์ํ๋ ์ด์ , ์ ๊ฐ ์ธ๊ธํ ํ ๊ฐ์ง ์ด์ ๋ ๋ชจ์๋ฆฌ๊ฐ ์๋ ์ก๊ฐํ ๋ฒํผ๊ณผ ๊ฐ์ด ๊ณ ์ ํ ๊ฒฝ๋ก๋ฅผ ์ฆ๊ธธ ์ ์๋ ์ปจํธ๋กค ํ
ํ๋ฆฟ ๋๋ฌธ์
๋๋ค. ์ฐ๋ฆฌ๋ xf๊ฐ ์ด๊ฒ์ ํฌ๋ก์ค ํ๋ซํผ ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ์์๊ฒ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ํฉ๋๋ค.
@juepiezhongren ๊ทธ๋ฐ ์ข ๋ฅ์ UI ์ฌ์ฉ์ ์ ์๋ฅผ ์ฐพ๊ณ ์๋ค๋ฉด ๊ทธ๋ ๊ฒ ํ ์ ์๋ ํ๋ซํผ ๊ฐ ํ๋ ์์ํฌ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. WPF์ ๋ํด: WPF๋ฅผ ๋ชจ๋ฐ์ผ๊ณผ ํผํฉํ๋ ๊ฒ์ ์ข์ง ์์ต๋๋ค.
์ฐ๋ฆฌ ํ๋ react native๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ง์ jers๊ฐ ๋ง์ ๊ธฐ์ฌ๋ฅผ ํ์ง๋ง 3๊ฐ์ ํ์๋ ์ ํ ์์ฐ์ ์ด์ง ์๋ค๋ ๊ฒฐ๋ก ์ ๋ด๋ ธ์ต๋๋ค. xf์ ๊ฒฝ์ฐ ๋ฒ๊ทธ๊ฐ ์๋ ๋จ์ ์ด ์์ง๋ง ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฒฌ๊ณ ํ ์๋ฃจ์ ์ ๋๋ค. eps x.native๋ ๋ชจ๋ ๊ธฐ๋ณธ API๋ฅผ ์ ํจํ๊ฒ ๋ง๋ญ๋๋ค. ๋ถ์กฑํ ๊ฒ์ ์ ๋น์ ์ธ๋ชจ, ์ค๋ ์ ์๊ณ ์๋ ์ต๊ทผ์ ์ผ์ฑ๋ฟ์ด๋ค. ๊ฒ๋ค๊ฐ shell์ ์ฌ์ฉํ๋ฉด flutter๋ ๋ฌด์ฉ์ง๋ฌผ์ด ๋ ๊ฒ์ด๊ณ , flutter.ios์ ๊ฐ์ ๊ฒ์ด ์์ผ๋ฉด flutter๋ ๋ค์ดํฐ๋ธ API์ ๋ฌดํํ ๊ณ ํต์ ๊ฒช๋ rn๊ณผ ๊ฐ์ ๊ฒ์ ๋๋ค.
@opcodewriter
์ฐ๋ฆฌ๋ Skiasharp๋ฅผ ์์ฃผ ์ฌ์ฉํ์ฌ ํน์ ์ ์ด๋ฅผ ์ํํ๋ฉฐ ์ฑ๋ฅ์ ๋ง์กฑํฉ๋๋ค.
@jassmith ๋ webgl์ ์ฌ์ฉํ์ฌ wasm์ materialShell์ ์ด์ํ๋ ๊ฒ์ ๊ณ ๋ คํ์ต๋๋ค. Skia์ ๊ฒฝ์ฐ ๋ค์ด๋ก๋ํ๊ธฐ์๋ ๋๋ฌด ํฝ๋๋ค.
๊ธฐ๋ณธ ๋๋ก์ API์ ๋ํ ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ํ๋ ๋์ ์ํ์ง ์์ต๋๋ค. \
xamarin.mono ๋ฐ wasm์ ์์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ์ํ ์ ํ์ dotnet์ ๋ํ ์ฆ์ค๊ฐ ๋๋ฌด ๋ง์ฐํ ์ค๊ตญ์์ dotnet ๋ฅด๋ค์์ค๋ฅผ ์ผ์ผํฌ ๊ฒ์ ๋๋ค.
@jassmith ์ด ๋ฌธ์ ์ ๋ํ ์ข์ ์์์ด ์์ต๋๊น?
@juepiezhongren์ ๋ํด ์ด๋ค ๋ด์ค๋ฅผ ์ฐพ๊ณ ๊ณ์ญ๋๊น? ์ด ์์ ์์ ํ ๋ก ์ ํธ์ถํ๊ธฐ ์ํด ๊ฒ์๋ ์ฌ์์ ๋๋ค.
๋๋ก์ฐ์ ์์ด ๋ก๋๋งต@ChaseFlorell ์ ์ธ์ ํฌํจ๋ ์ง ์๊ณ ์ถ์ต๋๋ค.
์ ๋๋ฒ์ค ๋ ๋๋ง์ ์ด๋ฏธ ์๋ฐ๋ก๋์์ ํ๋ฌํฐ์ ์ ํจํฉ๋๋ค.
์ด์ ๋ํ ํ์๋ผ์ธ์ ๋ด ๊ฐ์ธ ๊ฐ๋ฐ ์๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์ฌ๊ธฐ์์ ๋ชฉํ๋ ์ ์ฒด ํ์ ์ด๋ฌํ ๋ ธ๋ ฅ์ ์ฐ๋งํ๊ฒ ํ๋ ๊ฒ์ด ์๋๋ผ ์ ๋ง ์ฐธ์ฌ์ํค๋ ๊ฒ์ ๋๋ค. ์ ๋ถ๊ธฐ๋ฅผ ํจ๊ป ๋ณด๊ณ ์ถ๋ค๋ฉด ์ถ์ ํ ์ ์์ต๋๋ค. Shell์ ๊ทธ๋ฆผ์ ๊ทธ๋ฆด ๊ฒ์ ๋๋ค.
์ฐธ๊ณ ๋ก ์ ๋ ์์ง์ผ๋ก ๊ทธ๋ฆผ์ ๊ทธ๋ฆฌ๋ ๋ถ๋ถ์ ๋งค์ฐ ๋นจ๋ฆฌ ์ธ์ฐ๊ณ ์ปค๋ฎค๋ํฐ์์ ๋ ๋นจ๋ฆฌ ๋๋ด๊ณ ์ถ๋ค๋ฉด ๋์์ ์์ฒญํ ์๊ฐ์ ๋๋ค.
์ด๊ฒ์ ๋ชจ๋ ๋งค์ฐ ํ๋ฅญํ์ง๋ง ๊ทธ๋ํฝ ๊ฐ์์ ์ฌ์ฉํฉ๋๊น?
@jassmith on ios, system.draw ์ฌ์ฉ Android์์๋ skiasharp๊ฐ ์ฌ์ฉ๋ฉ๋๋ค || ๋ชจ๋ ๊ฒ์ ๋ํ skiasharp?
@juepiezhongren ์ฌ๋ฌ ๋ฐฑ์๋๋ฅผ ์ง์ํ๋ฏ๋ก Skia๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด Skia๋ฅผ ์ฌ์ฉํ๊ณ ๊ธฐ๋ณธ ๋๋ก์ API๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋์ Skia๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ธฐ๋ณธ ๋ฐฑ์๋๋ฅผ ์ฌ์ฉํ๊ณ Skia๊ฐ ์ตํธ์ธ๋์ด ์ข ์์ฑ์ด ๊ฐ์ ๋์ง ์์ต๋๋ค.
@jassmith ๊ทธ๊ฒ์ system.draw๊ฐ ์๋๋ก์ด๋๊ฐ ์๋ ios์์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค๋ ์ฌ์ค์ ์ ๋ง ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค.
@juepiezhongren ์ด System.Drawing์ ๋ํ ์ง์์ ์ถ๊ฐํ๋ ๊ฒ์ ์ฌ๊ธฐ์์ ์ ๋ฒ์๊ฐ ์๋๋๋ค. ๊ทธ๋ฌ๋ ์ด ์ฌ์์์๋ System.Drawing์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๊ทธ๋ฆฌ๊ธฐ๋ ๋ ๋๋ง์ ํจ์ฌ ์ ๊ฒ ๋ฐ์์ํต๋๋ค.
๊ทธ๋ ์ง ์์ต๋๋ค. ๋๋ก์์ ๋๋ก์์ ๋ ๋๋งํ๋ ๋ฌด์ธ๊ฐ์ ์ํด ๋ท๋ฐ์นจ๋์ด์ผ ํฉ๋๋ค. ์ฌ์ฉ์ ์ ์ ๋ ๋๋ฌ๊ฐ ๋ ํ์ํ๋ค๋ ๊ฒ์ ์๋ฏธํ์ง ์๋ ํ ๊ทธ๋ ์ต๋๋ค. ๋์ํฉ๋๋ค.
๋๋ "๊ฐ๋ฅํ ํ wpf/uwp์ ๊ฐ๊น๊ฒ ํ๋ผ"๋ ์ง์์ ์ํด ์๋๋ฐ, ์ด๊ฒ์ด ํญ์ ์ฌ๊ธฐ์์ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ์์น๋ ์๋๋ผ๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด๊ฒ์ ๋ชจ๋ ๋ ๋๋ง์ ์ํํ๋ ํ๋ ์์ํฌ์ ํ์ฌ XF ํจ๋ฌ๋ค์ ์ฌ์ด์์ ์์ ํ ๋ณด์ด์ง ์๋ ์ ์ถฉ์์ฒ๋ผ ๋ณด์ ๋๋ค.
๋๋ ํ๋ฆฌ๋ฏธํฐ๋ธ๊ฐ ๊ฐ ํ๋ซํผ์ ๋์ํ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ๊ณ ๋ฐ๋ผ์ ํ๋์จ์ด ๊ฐ์์ ๋ฌธ์ ๊ฐ ๋์ง ์์ ๊ฒ์ ๋๋ค. Windows/iOS/Android/etc๋ ์ฌ์ ํ ์ง์ฌ๊ฐํ, ์, ๊ทธ๋ผ๋์ธํธ ๋ฑ์ ๋ ๋๋งํ๊ณ ์์ผ๋ฉฐ ์ด๋ฏธ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ ์ ๋๋ก ํ๋์จ์ด ๊ฐ์์ ์ฌ์ฉํ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ปจํธ๋กค ๋์์ด๋์๊ฒ ๋ฒํผ์ ๋ํ Apple์ ์์ด๋์ด์ Microsoft์ ์์ด๋์ด์ ์ฝ๋งค์ด์ง ์๊ณ ํ๋ฆฌ๋ฏธํฐ๋ธ๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํธ๋กค์ ๋์์ธํ ์ ์๋ ๋ฅ๋ ฅ์ ์ ๊ณตํ ๊ฒ์ ๋๋ค.
๋ด๊ฐ ๊ทธ๊ฒ์ ์ฌ๋ฐ๋ฅด๊ฒ ์์ฝํฉ๋๊น?
@pmorelegistek ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฃผ์ ๋์์ธ ์์๋ก ๋ธ๋ฌ(Blur)๊ฐ ํฌํจ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ ๋จธํฐ๋ฆฌ์ผ(Material)์ ๋จผ์ ์ฒ๋ฆฌํ๊ณ ์์ต๋๋ค. ์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ค์ ๋ก ๋ชจ๋ ๊ณณ์์ ์๋ํ๋๋ก ๋ง๋ค ์ ์์์ ์๋ฏธํฉ๋๋ค(Android๋ฅผ ๋ณผ ๋).
Shell v1์ ๋ง์น๋ฉด ์ฆ์ ์ฌ๊ธฐ๋ก ๋์ด๊ฐ๋๋ค.
@jassmith ํฉ๊ธ์ ๋๋ค. UX ๋์์ธ์ ๋ง๋ ๊ธฐ๋ณธ ์ปจํธ๋กค์ ์ฌ์ฉํ๊ณ ํ์ํ ๋์์ธ ์์(๊ฐ๊ธ์ ์์)์ ๋ํด์๋ง ์คํค์ ๊ฐ์ ๊ทธ๋ ค์ง ์ปจํธ๋กค์ ์ฝ๊ฒ ์ถ๊ฐํฉ๋๋ค.
๋ ์ด์ "Xamarin Forms์์๋ ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค"๋ผ๊ณ ๋์์ด๋ ๋ฐ ๊ณ ๊ฐ๊ณผ ์ด์ผ๊ธฐํ์ง ์์๋ ๋ฉ๋๋ค. ์ด๊ฒ์ (ํ๋ฌํฐ์ ๋ฌ๋ฆฌ) ์ง์ ํ ๋ค์ดํฐ๋ธ ๋๋์ ์ ์งํ๋ฉด์ ๋์์ธ ์ ํ์ ์ ๊ฑฐํฉ๋๋ค.
์ฌ๋ฃ ์ ์ ์ ์ด๊ฒ์๋ณด๊ณ ์ถ์ต๋๋ค. ์ด๊ฒ์ XF์ ์ค์ง์ ์ธ ํ๊ณ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
Shell์ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์์ํ ์ ์๋ n๋ฒ์งธ ๊ธฐ๋ฅ์
๋๋ค. _์์_์ ํ๋ ๊ฒ์ด ๋๋ฌด ์ค๋ซ๋์ ์ด์ ์ด ๋์ด ์์ง๋ง _์ถ๊ฐ_๋ฅผ ์ป๊ธฐ ์ํ ์ด์ ๊ฐ์ ๊ธฐ๋ฅ์ XF ๊ฐ๋ฐ์๋ฅผ _์ ์ง_ํ ๊ฒ์
๋๋ค.
์ด๊ฒ์ Material Shell์ด โโ์ด๊ฒ์ ์์กดํ๊ธฐ ๋๋ฌธ์ Material Shell๋ณด๋ค ๋จผ์ ์ผ์ด๋์ผ ํฉ๋๋ค. Shell๋ณด๋ค ๋จผ์ ์ด๊ฒ์ ๋ณด๊ณ ์ถ๋ค๊ณ ๋ง์ํ์ ๊ฒ ๊ฐ์๋ฐ์?
Shell์ ๋ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ์์ํ๋ ๋ฐ ์ค์ ์ ๋์ง ์์ต๋๋ค. ํ์ด์ง๋ฅผ ์์ฒด์ ์ผ๋ก ์ ์ดํ ์ ์๋ ๋ฐฉ์์ผ๋ก ํ์ด์ง๋ฅผ ํ๋ํํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ํ ๋์ฒดํ๊ธฐ ์ํ ๊ฒ์ด๋ฉฐ ์ฌ๋๋ค์ด ์ด์์ ๊ณ ๋ คํ๋๋ก ๊ถ์ฅํ ๊ฒ์ ๋๋ค. Shell์ ์ต์ข ์ฌ์ฉ์์๊ฒ ํจ์ฌ ๋ ๋ถ๋๋ฝ๊ณ ํ๋ถํ ๊ฒฝํ์ ์ ๊ณตํ๋ ๋ฐ ์ค์ ์ ๋๊ณ ์์ผ๋ฉฐ ์ ๋๋ฉ์ด์ ์ ์ฌ์ฉ์ ์ ์ํ ์ ์์ผ๋ฉฐ ์ ๋๋ฉ์ด์ ์ ํ์ ๋ก๋๋ฅผ ์ง์ฐ/์ง์ฐํ์ฌ ๋ธ๊พน์ง์ ์ ๊ณตํ์ง ์๋๋ก ํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ์๋๋ก์ด๋์์ 0 GPU ์ค๋ฒ๋๋ก ์ฝํ ์ธ ์์ญ์ ์ ๊ณตํ๋๋ฐ, ์ด๊ฒ์ ์ค๋ฒ๋๋ก๊ฐ ์ฐจํธ์ "๋นจ๊ฐ go fuck yourself" ๋ถ๋ถ์ ์๋ ํ์ฌ ํ์ด์ง์ ๋น๊ตํ์ญ์์ค.
Shell์ ์ฌ๋๋ค์ด ๋ ๋นจ๋ฆฌ ์์ํ๋๋ก ํ๋ ๊ฒ์ด ์๋๋ผ ์ฑ์ ๋ ๋น ๋ฅด๊ฒ ๋ง๋๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด Shell์ ์ฌ์ฉํ๋ฉด ํ์ด์ง/ํญ/๊ทธ๋ฃน์ "์์ฃผ"๋ก ํ์ํ ์ ์์ผ๋ฉฐ ์ฌ์ฉ์๊ฐ ์ง์์ ์ผ๋ก ๋ฐฉ๋ฌธํ๋ค๋ ๊ฐ์ ํ์ ์์คํ ์์ ์ ์งํฉ๋๋ค. ์ฆ, ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ด๋ํ๋ค๊ฐ ๋์์ฌ ๋ ๋ค์ ๋ก๋๋์ง ์์ต๋๋ค. Shell์ด โโํ์ด์ง์ ์ ์ฒด ๊ณ์ธต์ ์์ ํ๊ธฐ ๋๋ฌธ์ ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค.
๋ํ Shell์ ์ฌ์ฉํ์ฌ ๊ทธ๋ฆฌ๊ธฐ ์ฑ๋ฅ์ ์ต์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ช ๊ฐ์ง ์๊ฐ์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ธฐ๋ฅผ Shell๋ก ์ ํํ์ง๋ ์์ ๊ฒ์ด์ง๋ง ๋์ผํ ํจ์ค์์ ๋ชจ๋ ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ์ํํ ์ ์์ผ๋ฏ๋ก Shell์ ์ฌ์ฉํ์ฌ ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ํจ์ฌ ๋ ํจ์จ์ ์ผ๋ก ๋ง๋ค ์ ์๋ค๋ ์๊ฐ์ด ์์ต๋๋ค. ์ด ์คํ์ดํฌ๊ฐ ์์ง ์๋ฃ๋์ง ์์๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์ ์๊ธ ์๊ฐฑ์ด๊ฐ ํ์ํ์ง๋ง ์ข ์ด์๋ ๊ด์ฐฎ์ ๋ณด์ ๋๋ค.
@weitzhandler ์์ผ๋ก 4-6์ฃผ ์์ ์ด ์์ ์ผ๋ก ๋์ด๊ฐ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ด๊ฒ์ ๊ทธ ์์ ์๋์ํค๋ ๋ฐ ํจ์ฌ ๋น ๋ฅผ ๊ฒ์ ๋๋ค. ๊ทธ ์๊ฐ ์ค ์ด๋ ๊ฒ๋ ๊ณ ์ ๋์ด ์์ง ์์ต๋๋ค.
+1
@jassmith https://github.com/nventive/Uno
์ข์์.
๋จ์ผ ๋ ๋๋ง์ ํ๋ฅญํฉ๋๋ค
form์ ๊ธ์ง์ ํํ๊ฐ๊ฐ ๋ ๊ฒ์ด๊ณ uno๋ ๋ณด์์ ํํ๊ฐ๊ฐ ๋ ๊ฒ์
๋๋ค.
์ฐ๋ฆฌ๋ ๋ ๋ค ์ฌ๋ํฉ๋๋ค
+1 ์ต๋ํ ๋นจ๋ฆฌ ๋ณด๊ณ ์ถ์ ๋ง์ ์ฌ์ฉ์ ์ ์ UI ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ํ๋ฅญํ ๊ธฐ๋ฅ
@jassmith ๋ 3.3.0์์ ์ถ์ฒจ์ ํ ๊ฒ ๊ฐ์ต๋๊น?
์ด์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
์ฐ๋ฆฌ์๊ฒ ์ด๊ฒ์ Xamarin์ด ๊ตฌํํ๊ธฐ๋ฅผ ๋ฐ๋ผ๋ ๊ฐ์ฅ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ๋๋ค.
์ฐ๋ฆฌ๋ ์ฃผ๋ก LoB ์ฑ์ ๊ฐ๋ฐํ๋ฉฐ, ์ต์ฐ์ ์์ ์ค ํ๋๋ ๊ฐ๋ฐ ์๋์
๋๋ค.
์ฐ๋ฆฌ๋ ์ ์ ํ ์์
์ ์ํํ๊ณ , ๋ฉ์ง๊ฒ ๋ ๋๋ง๋๋ฉฐ, ๊ฐ๋ฐ ์๊ฐ์ด ๋ ๊ฑธ๋ฆฌ๋ ๋งค๋ ฅ์ ์ธ UI๊ฐ ์๋ ํ ๊ธฐ๋ณธ ๋ชจ์๊ณผ ๋๋์ ๋ ์ ๊ฒฝ์ ์๋๋ค.
๊ฐ ํ๋ซํผ์์ ๊ฐ ์์๊ณผ ํ์ด์ง๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ํ ์คํธํ๊ณ ์กฐ์ ํด์ผ ํ๋ ๊ฒ์ ์ค์๊ฐ ํฌ๋ฌ์ด๋ฉฐ ๋ชจ๋ ํ๋ซํผ์์ ์๋ค๋ก ์ธ ๋ฒ ํ์ธํด์ผ ํ๋ ์ฌ์ํ UI ๋ณ๊ฒฝ์ด ํ์ํฉ๋๋ค.
Shell & Material Shell์ ์ถ๋ณต์ด์ ๊ธฐ์ ์์์ ๋๋ค. ์์ผ๋ก ๋ฐ์ด์ฃผ์ธ์! ์ด๊ฒ์ ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ๊ณณ(Uno, Flutter ๋ฐ ๊ธฐํ)์ ๊ณ์ ์ฌ์ฉํ๊ฒ ํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ๋๋ค.
3.3์์๋ ์ถ์ฒจ์ด ์ ๋๋ค๋ ์ฌํ ์์
์ด๊ฒ์ ๋ํ +1, uwp ๋ฐฐ๊ฒฝ์์ ์ค๋ XF๋ฅผ ์ ๋ง๋ก ์ฌ์ฉํ๊ณ ์ถ์ง๋ง ๋จ์ ์ด ์์ต๋๋ค. ํ์ฌ ์ ๋ ํ๋ฌํฐ๋ฅผ ์๋ํ๊ณ ์์ง๋ง ์ด๊ฒ์ด ๊ฐ๋ฅํ ๋นจ๋ฆฌ ๊ตฌํ๋๋ค๋ฉด XF๋ก ํ์คํ ์ฌ ๊ฒ์ ๋๋ค.
๋๋ ์ด๊ฒ์ด ํ๋ฅญํ ๊ธฐ๋ฅ์ด๋ผ๋ ๋ฐ ๋์ํ๊ณ ๊ตฌํํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ค์ , ์ ์ ๋ฑ๊ณผ ๊ฐ์ ์ ์คํ์ผ๋ ํฌํจํ ๊ฒ์ ๋๋ค.
์์์ด ์๋์? ๊ณํ? ๋ก๋๋งต?
์๊ธฐ๊ฒ๋, ์ด์ ฏ๋ฐค ๋๋ ์ปค์คํ
๋ ๋๋ฌ๋ฅผ ์คํํ๊ณ ์๋ ๋ ์์ ์ ๋ฐ๊ฒฌํ๊ณ ์ด ๋ชจ๋ ๊ฒ์ด ์ปค์คํ
๋ทฐ๋ก ์ฐ๋ฆฌ ์์ ์ ํ๋ฆฌ๋ฏธํฐ๋ธ๋ฅผ ์ ์ํ๊ณ ๊ทธ๊ฒ๋ค์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถํจ์ผ๋ก์จ ์ํ๋ ์ ์๋ค๋ ๊ฑฐ์ ๊ฒฐ๋ก ์ ๋ด๋ ธ์ต๋๋ค. Border, Ellipse, Line ์ด์์ ํ์ํ์ง ์์ต๋๋ค.
์ด๊ฒ์ด ๊ณต์์ ์ผ๋ก ์ง์๋๋ ๊ฒ์ ๋ณด๊ณ ์ถ์ง๋ง ๊ธฐ๋ค๋ฆฌ์ง ์์ต๋๋ค. :)
@jassmith
์๋ฅผ ๋ค์ด Line
๋ฐ Rectangle
๊ฐ ์ค์ ์กฐํ์๊ฐ ๋ ๊น์? (์์ ์๋ Ellipse
๊ฐ ์๋ Grid
๊ฐ ์์ ๋ณด๊ธฐ๋ก ์๊ธฐ ๋๋ฌธ์
๋๋ค). ํ ๊ฒ์ด๋ค
ํญ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด Rectangle
์ ์ถ๊ฐ TapGestureRecognizer๋ฅผ ์ฒจ๋ถํ ์ ์์ต๋๊น?
์ด๊ฒ๋ค์ ์ค์ ๋ทฐ์ด๊ธฐ ๋๋ฌธ์ ํ๋ฆฌ๋ฏธํฐ๋ธ๋ฅผ ๊ทธ๋ฆฌ๊ธฐ ์ํ ์ค์ ๋ทฐ๊ฐ ์์ผ๋ฉด ๋ ๋๋ง ์๋๊ฐ ์ ํ๋์ง ์์ต๋๊น?
@andreinitescu ๋๋ ์๋๊ฐ Xamarin Forms ์ธก์ ์ค์ ๋ณด๊ธฐ๋ฅผ ์ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ๊ธฐ๋ณธ์ ์ผ๋ก ๋ณด๊ธฐ๋ก ์คํ๋์ง๋ ์์ต๋๋ค.
_๋๋ก์ ํ๋ฆฌ๋ฏธํฐ๋ธ๋ ๋จ์ํ ๋ ๋๋ฌ๊ฐ ์๋ ๋ทฐ์ ๋๋ค_
๋ฐ๋ผ์ ์ฒด์ธ( Drawing
? DrawingTemplate
?)์ ๋ ๋๋ฌ๋ ๋๋ก์ด๋ธ ์์์ ๋ฐ๋ณตํ๊ณ ๊ทธ๋ฆฌ๋ ์ฑ
์์ด ์์ต๋๋ค.
๋๋ ์ด๊ฒ์ด CompressedLayout.IsHeadless
๊ฐ ์ค์ ๋ ๋ ์ด์์์ ์ ์ฉ๋๋ ๊ฒ๊ณผ ๋์ผํ ์ข
๋ฅ์ ์ ํ์ด ์ ์ฉ๋๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค๊ณ ์๊ฐํฉ๋๋ค(์ ์ค์ฒ ์ธ์๊ธฐ, ํจ๊ณผ ์์, ๋ณํ ์์ ๋ฑ).
@GalaxiaGuy ๊ฐ์ ๋งฅ๋ฝ์์ ์๊ฐํ๊ณ ์์ง๋ง Grid์ ๊ฐ์ ์ค์ ๋ณด๊ธฐ์ ํผํฉํ๊ธฐ ๋๋ฌธ์ ์ฝ๊ฐ ํผ๋์ค๋ฝ์ต๋๋ค. ์ ๋ง ํ์ํ๊ฐ์? View์์ ํ์๋๋ ๋์ ์ถ์ ๋๋ก์ ์์ DrawingElement
์ฌ์ฉํ์ง ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
์ข์ ์ง์ ๊ทธ๋ฅ ์ฌ๋ฐ๋ฅธ ์ํ
<Button x:Class="Local.MyButton">
<Button.Template>
<DrawingTemplate>
<Drawing>
<Grid>
<RoundedRectangle Background="{x:Bind BackgroundColor}" />
<Ellipse x:Name="TouchFeedback" Opacity="0" />
<Text Content="{x:Bind Text}" />
</Grid>
</Drawing>
</DrawingTemplate>
</Button.Template> --> correct this line
</Button>
์๋ง๋ 4.0์์์ ๊ฒ์ ๋๊น?
Drawing
๋ ๋์ ํ๋ซํผ์ ๋
๋ฆฝ์ ์ธ ๊ทธ๋ํฝ ํ๋ฆฌ๋ฏธํฐ๋ธ๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํธ๋กค์ ๊ตฌํํ๋ค๋ ์ ์์ ์ข์ต๋๋ค. ์ด์ ์๋ NControl์ด ์์์ง๋ง ๋ฌธ์ ๊ฐ ์์๊ณ (netstandard2.0 ์ด์ , SkiaSharp ์ด์ ) ์
๋ฐ์ดํธ๋์ง ์์์ต๋๋ค.
์ฌ์ 1. SkiaSharp์์ ํจ์ฌ ๋ ์์ ํ ํํ๋ก ์ด๋ฏธ ๊ตฌํ๋ ๊ธฐ๋ฅ์ ๋ณต์ ํ๊ณ , 2. ์ด๋ฏธ ์ ์ง ๊ด๋ฆฌํ ์ ์๋ Xamarin.Forms ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ค์ด๊ฐ๋ XAML/๋ฐ์ธ๋ฉ์ ํตํด ๋ถํ์ํ ๋ณต์ก์ฑ ๊ณ์ธต์ ์ถ๊ฐํฉ๋๋ค.
๋ ๋์ ์ ๊ทผ ๋ฐฉ์์ SkiaSharp๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ ์ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋๋ ๊ฒ์ ๋๋ค. ์์ปจํธ๋กค++
@jassmith @rogihee SVG๋ ์ ๋ง ๋ฐฐ์ก ํ์์ด ์๋๋๋ค. ์ฃ์กํฉ๋๋ค. // ์ ๋ SVG๋ฅผ ํ๋ซํผ ๊ฐ์ ์ผ๊ด๋๊ฒ ๋ ๋๋งํ๋ ค๋ ์ฑ ์์ ์ง๊ณ ์ถ์ง ์์ต๋๋ค.
SkiaSharp๋ SVG๋ฅผ ์ง์ํฉ๋๋ค.
์ด๊ฒ์ ๋ํ ์์์ด ์์ต๋๊น?
์ด๊ฒ์ ๋ํ ์์์ด ์์ต๋๊น?
๋ํ ์ด๊ฒ์ด ์ฌ์ ํ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์๋์ง ๊ถ๊ธํฉ๋๋ค. ์ ๋ ๋ณด๊ธฐ ํํ์ง ์์ ํฌ๋ก์ค ํ๋ซํผ UI ํ๋ ์์ํฌ๋ฅผ ์ํ๋ ์ง์์ ์์ผ๋ฉฐ ์ด๊ฒ์ด ์ด๋ฅผ ๋ฌ์ฑํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
@legistek SkiaSharp๋ ๋ณด์ด์ง ์๋ ํฌ๋ก์ค ํ๋ซํผ ๋๋ก์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๊ฐํ๋ Xamarin.Forms ๊ด๋ จ ์ด์ ์ ๋ฌด์์ ๋๊น?
UI ํ๋ ์์ํฌ์๋ ๊ทธ๋ฆฌ๊ธฐ๋ณด๋ค ์ฝ๊ฐ ๋ ๋ง์ ๊ฒ์ด ์์ต๋๋ค.
ํ์ง๋ง ์ด ์ค๋ ๋๋ UI ํ๋ ์์ํฌ๊ฐ ์๋ ๊ทธ๋ฆฌ๊ธฐ ํ๋ ์์ํฌ์ ๋ํด ๋ ผ์ํ๊ณ ์์ต๋๋ค...
Xamarin Forms์ฉ ๊ทธ๋ฆฌ๊ธฐ ํ๋ ์์ํฌ์ ๋ํด ๋ ผ์ํ๋ ์ค์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
SkiaSharp๋ Xamarin Forms์ฉ ๊ทธ๋ฆฌ๊ธฐ ํ๋ ์์ํฌ์ ๋๋ค. ๋ค๋ฅธ .Net UI ํ๋ซํผ์์๋ ์๋ํ๋ค๋ ์ฌ์ค์ ํ์คํ ๋จ์ ์ด ์๋๋ผ ์ฅ์ ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ OP์์ ๋งํ๋ฏ์ด SkiaSharp๋ ๊ฐ๋ณ ํ๋ซํผ์ ๊ธฐ๋ณธ ๋๋ก์ ์์ง์ด ๋ ์ ์์ง๋ง ์ด ์ ์์ ์์ด๋์ด๋ ์ถ์ํ ๊ณ์ธต์ ์ถ๊ฐํ๊ณ ๋ชจ๋ ์ด์ ๊ณผ ํจ๊ป XAML์ ํตํด ๋๋ก์์ ์ง์ํ๋ ๊ฒ์ ๋๋ค. ๊ฐ์ฅ ์ฃผ๋ชฉํ ๋งํ ๊ฒ์ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ๋๋ค. ๋น์ ์ด ๋ถํ์ํ ๋ณต์ก์ฑ์ด๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ ๋๋ ์ฐ์ํ๋ค๊ณ ๋ถ๋ฆ ๋๋ค.
์ด๊ฒ์ ์์ง ์ด์ ์๊ณ /๋๋ MAUI๋ก ๋กค๋ง๋ฉ๋๊น?
@legistek https://github.com/xamarin/Xamarin.Forms/wiki/Feature-Roadmap ์ Xamarin.Forms 4.7.0์ ๋ํ ๋ก๋๋งต์์์ ๊ฐ์ด ๋ชจ์, ๊ฒฝ๋ก ๋ฐ ๋ธ๋ฌ์๋ฅผ ๋์ดํฉ๋๋ค.
๋ฉ์ง ์์! ๊ฐ์ฌ ํด์!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๊ฒ์ Material Shell์ด โโ์ด๊ฒ์ ์์กดํ๊ธฐ ๋๋ฌธ์ Material Shell๋ณด๋ค ๋จผ์ ์ผ์ด๋์ผ ํฉ๋๋ค. Shell๋ณด๋ค ๋จผ์ ์ด๊ฒ์ ๋ณด๊ณ ์ถ๋ค๊ณ ๋ง์ํ์ ๊ฒ ๊ฐ์๋ฐ์?
Shell์ ๋ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ์์ํ๋ ๋ฐ ์ค์ ์ ๋์ง ์์ต๋๋ค. ํ์ด์ง๋ฅผ ์์ฒด์ ์ผ๋ก ์ ์ดํ ์ ์๋ ๋ฐฉ์์ผ๋ก ํ์ด์ง๋ฅผ ํ๋ํํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ํ ๋์ฒดํ๊ธฐ ์ํ ๊ฒ์ด๋ฉฐ ์ฌ๋๋ค์ด ์ด์์ ๊ณ ๋ คํ๋๋ก ๊ถ์ฅํ ๊ฒ์ ๋๋ค. Shell์ ์ต์ข ์ฌ์ฉ์์๊ฒ ํจ์ฌ ๋ ๋ถ๋๋ฝ๊ณ ํ๋ถํ ๊ฒฝํ์ ์ ๊ณตํ๋ ๋ฐ ์ค์ ์ ๋๊ณ ์์ผ๋ฉฐ ์ ๋๋ฉ์ด์ ์ ์ฌ์ฉ์ ์ ์ํ ์ ์์ผ๋ฉฐ ์ ๋๋ฉ์ด์ ์ ํ์ ๋ก๋๋ฅผ ์ง์ฐ/์ง์ฐํ์ฌ ๋ธ๊พน์ง์ ์ ๊ณตํ์ง ์๋๋ก ํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ์๋๋ก์ด๋์์ 0 GPU ์ค๋ฒ๋๋ก ์ฝํ ์ธ ์์ญ์ ์ ๊ณตํ๋๋ฐ, ์ด๊ฒ์ ์ค๋ฒ๋๋ก๊ฐ ์ฐจํธ์ "๋นจ๊ฐ go fuck yourself" ๋ถ๋ถ์ ์๋ ํ์ฌ ํ์ด์ง์ ๋น๊ตํ์ญ์์ค.
Shell์ ์ฌ๋๋ค์ด ๋ ๋นจ๋ฆฌ ์์ํ๋๋ก ํ๋ ๊ฒ์ด ์๋๋ผ ์ฑ์ ๋ ๋น ๋ฅด๊ฒ ๋ง๋๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด Shell์ ์ฌ์ฉํ๋ฉด ํ์ด์ง/ํญ/๊ทธ๋ฃน์ "์์ฃผ"๋ก ํ์ํ ์ ์์ผ๋ฉฐ ์ฌ์ฉ์๊ฐ ์ง์์ ์ผ๋ก ๋ฐฉ๋ฌธํ๋ค๋ ๊ฐ์ ํ์ ์์คํ ์์ ์ ์งํฉ๋๋ค. ์ฆ, ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ด๋ํ๋ค๊ฐ ๋์์ฌ ๋ ๋ค์ ๋ก๋๋์ง ์์ต๋๋ค. Shell์ด โโํ์ด์ง์ ์ ์ฒด ๊ณ์ธต์ ์์ ํ๊ธฐ ๋๋ฌธ์ ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค.
๋ํ Shell์ ์ฌ์ฉํ์ฌ ๊ทธ๋ฆฌ๊ธฐ ์ฑ๋ฅ์ ์ต์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ช ๊ฐ์ง ์๊ฐ์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ธฐ๋ฅผ Shell๋ก ์ ํํ์ง๋ ์์ ๊ฒ์ด์ง๋ง ๋์ผํ ํจ์ค์์ ๋ชจ๋ ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ์ํํ ์ ์์ผ๋ฏ๋ก Shell์ ์ฌ์ฉํ์ฌ ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ํจ์ฌ ๋ ํจ์จ์ ์ผ๋ก ๋ง๋ค ์ ์๋ค๋ ์๊ฐ์ด ์์ต๋๋ค. ์ด ์คํ์ดํฌ๊ฐ ์์ง ์๋ฃ๋์ง ์์๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์ ์๊ธ ์๊ฐฑ์ด๊ฐ ํ์ํ์ง๋ง ์ข ์ด์๋ ๊ด์ฐฎ์ ๋ณด์ ๋๋ค.